home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Information / THINK C Digest / 1991 / 91-08 < prev    next >
Text File  |  1995-12-31  |  112KB  |  3,145 lines

  1. 
  2. Path: ucivax!gateway
  3. From: nagel@ics.uci.edu (Mark Nagel)
  4. Subject: ARCHIVE: Elements of C++ in THINK C
  5. Message-ID: <15404.681109469@ics.uci.edu>
  6. Newsgroups: fa.think-c
  7. Reply-To: nagel@ics.uci.edu
  8. Lines: 25
  9. Date: 2 Aug 91 05:04:41 GMT
  10. X-Phone: (714) 753-0414 x115
  11.  
  12.  
  13. Date: Tue, 16 Jul 91 07:12:36 EDT
  14. From: gross@kaman.com (Mark Gross)
  15.  
  16. Subject: Think C vrs of Elements of C++ Macintosh Programming
  17.  
  18. I have finished working through Dan Weston's book
  19. "Elements of C++ Macintosh Programming"implementing many
  20. of its class libraries using THINK C4.05.  I've made some
  21. changes in the translation and they seem to work well.
  22.  
  23. I am supporting this class library.  Because of its simplicity
  24. and my organization of the projects, I feel that it would be
  25. useful to many people struggling with object oriented and
  26. Macintosh programming.
  27.  
  28. I am submitting my implementation to sumex/info-mac archive
  29. as TCelmC++.hqx.  I'd post it on Compuserve and America
  30. On-Line if I had an account on these services.  Feel free
  31. to distribute my package for me.
  32.  
  33. Mark Gross
  34. gross@kaman.com
  35.  
  36. [saved as: /mac/think-c/examples/elements.hqx; 208K]
  37. 
  38. 
  39. Path: ucivax!gateway
  40. From: k044477@hobbes.kzoo.edu (Jamie McCarthy)
  41. Subject: CPrinter with no printer chosen
  42. Message-ID: <9108020656.AA26240@hobbes.kzoo.edu>
  43. X-Mailer: ELM [version 2.3 PL11]
  44. Newsgroups: fa.think-c
  45. Lines: 32
  46. Date: 2 Aug 91 06:55:44 GMT
  47.  
  48. The code in CPrinter::IPrinter() reads, in part:
  49.  
  50. PrOpen();
  51. if (!PrError()) {
  52.     /* set up macTPrint and default stuff */
  53. }
  54. PrClose();
  55.  
  56. Now, I don't know much of anything about printer drivers.  (Forgive me,
  57. but that's part of why I like OOP--I don't have to worry about it now, I
  58. can wait 'til later to figure it out.)  But I do know that if you
  59. haven't chosen a printer, for example if you've spent three days
  60. restoring a crashed hard disk and haven't gotten around to
  61. opening up the Chooser yet (argh!), macTPrint stays NULL, and the
  62. following lines in CDocument::IDocument() choke:
  63.  
  64. if (printable) {
  65.         itsPrinter = new(CPrinter);
  66.     itsPrinter->IPrinter(this, NULL);
  67.     macTPrint = itsPrinter->GetPrintRecord();
  68.     pageWidth = (**macTPrint).prInfo.rPage.right;
  69. }
  70.  
  71. It dies, of course, on the dereferencing of macTPrint.
  72.  
  73. Seems to me that a little error-checking, most likely in CDocument, is
  74. in order.  Or am I doing something wrong?
  75. --
  76.  Jamie McCarthy                    k044477@kzoo.edu
  77.  Disclaimer:  it's my responsibility iff they're my words.
  78.  You killed a little dwarf. The body vanishes in a cloud of
  79.  greasy black smoke.
  80. 
  81. 
  82. Path: ucivax!gateway
  83. From: infoserv!apple!well!crunch@zardoz.uucp (John Draper)
  84. Subject: Re:  QuickDraw32 bit
  85. Message-ID: <9107291818.AA14561@well.sf.ca.us>
  86. Newsgroups: fa.think-c
  87. Lines: 7
  88. Date: 2 Aug 91 17:08:23 GMT
  89.  
  90.  
  91. >GetGWorldPixMap?  It's not in my header files either.  What is it supposed
  92. >to do?  I've got a GetPixBaseAddr:
  93. >pascal Ptr GetPixBaseAddr (PixMapHandle pm)
  94.  
  95. It's supposed to return the BaseAddr of a GWorld.
  96.  
  97. 
  98. 
  99. Path: ucivax!gateway
  100. From: phils@chaos.cs.brandeis.edu (Phil Shapiro)
  101. Subject: CPrinter with no printer chosen
  102. Message-ID: <9108022024.AA26538@chaos.cs.brandeis.edu>
  103. In-Reply-To: Jamie McCarthy's message of 2 Aug 91 06:55:44 GMT <9108020656.AA26240@hobbes.kzoo.edu>
  104. Newsgroups: fa.think-c
  105. Lines: 30
  106. Date: 2 Aug 91 20:24:37 GMT
  107.  
  108. From: Jamie McCarthy <k044477@hobbes.kzoo.edu>
  109.    The code in CPrinter::IPrinter() reads, in part:
  110.  
  111.    PrOpen();
  112.    if (!PrError()) {
  113.        /* set up macTPrint and default stuff */
  114.    }
  115.    PrClose();
  116.  
  117.    [...] if you haven't chosen a printer, for example if you've spent
  118.    three days restoring a crashed hard disk and haven't gotten around to
  119.    opening up the Chooser yet (argh!), macTPrint stays NULL, and the
  120.    following lines in CDocument::IDocument() choke:
  121.  
  122.    if (printable) {
  123.        itsPrinter = new(CPrinter);
  124.        itsPrinter->IPrinter(this, NULL);
  125.        macTPrint = itsPrinter->GetPrintRecord();
  126.        pageWidth = (**macTPrint).prInfo.rPage.right;
  127.    }
  128.  
  129.    It dies, of course, on the dereferencing of macTPrint.
  130.  
  131.    Seems to me that a little error-checking, most likely in CDocument, is
  132.    in order.  Or am I doing something wrong?
  133.  
  134. This is a bug in the TCL, and it will be fixed in the next major
  135. release of THINK C.
  136.  
  137.     -phil
  138. 
  139. 
  140. Path: ucivax!gateway
  141. From: moses@donald.cs.umn.edu ("Matthew E. Moses")
  142. Subject: Writing from ThinkC to an Excel spreadsheet format.
  143. Message-ID: <9108031918.AA16508@cs.umn.edu>
  144. X-Mailer: Elm [version 2.1 PL0]
  145. Newsgroups: fa.think-c
  146. Lines: 11
  147. Date: 3 Aug 91 19:18:35 GMT
  148.  
  149. Does anyone have any experience or pointers on how to write to a file in
  150. ThinkC in the Excel spreadsheet format?  I need to write some calculation
  151. data into a form readable be Excel.  Any hints or tips will be appreciated.
  152. Please send them to my mail rather than over this list and I will summarize
  153. if their is any interest. Thanks.
  154.  
  155.  
  156. **************************************************************************
  157. *   Matthew E. Moses   *   moses@donald.cs.umn.edu   *                   *
  158. *                      * ar705@cleveland.Freenet.edu *                   *
  159. **************************************************************************
  160. 
  161. 
  162. Path: ucivax!gateway
  163. From: JSC93%GENESEO.BITNET@cunyvm.cuny.edu (JON)
  164. Subject: THINK C 5.0
  165. Message-ID: <0586B5982000222A@geneseo.bitnet>
  166. Newsgroups: fa.think-c
  167. X-VMS-To: IN%"think-c@ics.uci.edu"
  168. Lines: 13
  169. Date: 6 Aug 91 03:36:52 GMT
  170. X-Envelope-to: think-c@ics.uci.edu
  171.  
  172. Hi!  I am on the market to buy Think C, and I was just about to buy it when I
  173. looked in the MacUser that I received today, in the MacWarehouse add they are
  174. advertising version 5.0 for $209.  I called them and they told me that the
  175. release date was Aug 7th.
  176. Does anyone know anything about this upcoming release???  I heard a couple of
  177. things about integrating some C++ into it on Compuserve, and the add talks
  178. about taking full advantage of new System 7.0 capabilities.
  179. Lastly, does anyone know of any type of educational discount one can get on
  180. THINK C from Symantec itself that would beat this price???
  181.         Thanks in advance for replies"!!!
  182.         -Jon Christiansen
  183.         jsc93@uno.cc.geneseo.edu
  184.         jsc93@geneseo.bitnet
  185. 
  186. 
  187. Path: ucivax!gateway
  188. From: dedjhc@arco.com ("John Champion(907")
  189. Subject: Compactor compression algorithm
  190. Message-ID: <9108062335.AA06475@Arco.COM>
  191. Newsgroups: fa.think-c
  192. Lines: 8
  193. Date: 6 Aug 91 23:35:36 GMT
  194.  
  195. Does anyone know where I might find some source code that uses the same
  196. algorithm for compression/decompression that Compactor uses?  This one
  197. seems to offer the best compression ratio, as well as a speed advantage.
  198. I have a program that uses large input files, and these files must be
  199. passed over a network.  The program must be able to compress/decompress
  200. the files internally, so unfortunately, I cannot just use compactor itself.
  201. Please respond via email, and I will summarize.  Thanks in advance...
  202.        -John Champion
  203. 
  204. 
  205. Path: ucivax!gateway
  206. From: minow@ranger.enet.dec.com (Martin Minow 07-Aug-1991 0743)
  207. Subject: Think C 5.0 announced
  208. Message-ID: <9108071142.AA28070@enet-gw.pa.dec.com>
  209. Newsgroups: fa.think-c
  210. Lines: 36
  211. Date: 7 Aug 91 11:42:32 GMT
  212.  
  213. The Think folk are all at MacWorld, so I'll post a quick note.
  214.  
  215. Think 5.0 (and Think Pascal 4.0 (?)) were released on Monday.  Think C
  216. is Ansi complient, supports System 7, is 32-bit clean, etc. etc.
  217. The compiler has an optional code optimizer.  You can list the output
  218. of the pre-processor and the code generator.  (The latter isn't quite
  219. the help you might wish, as the assembler listing lacks the hex values
  220. and variable locations are all "000000(a5)" or some-such.)
  221.  
  222. The Think folk decided to make the compiler Ansi-complient rather than
  223. C++ complient. Missing C++ features include operator overloading, inline
  224. functions in methods, multiple inheritence, probably others. On the other
  225. hand, it does support // comments, public, private and protected instance
  226. variables and functions (but not friends), and the "new" and "delete" object
  227. operators, as well as Method (constructor) and ~Method (desctructor).
  228.  
  229. There are a lot of little improvements: the debugger remembers breakpoints,
  230. expressions, and window locations, for example.  You can also write
  231. MPW-style #pragma parameter inlines.
  232.  
  233. TCL has had extensive changes, including a bazillion new classes, a very
  234. nice browser, 32-bit visual coordinates, and core Apple Event support.
  235. There's also an exception handler.  The bad news is that a "hello world"
  236. project is about 2 Mb large.  Unfortunately, it takes a moderate amount
  237. of work to upgrade TCL applications (mostly to handle the 32-bit graphics
  238. environment).  Upgrading to use all the new stuff -- and there is a huge
  239. amount of it -- will require more work.  For example, if you play fast
  240. and loose with superclass variables (rather than calling the superclass
  241. access methods), you'll have to clean up your act.
  242.  
  243. As I recall, upgrades are free if you bought Think C after June 1, $89 if
  244. earlier.
  245.  
  246. Martin Minow
  247. minow@ranger.enet.dec.com
  248.  
  249. 
  250. 
  251. Path: ucivax!gateway
  252. From: ephraim@think.com (Ephraim Vishniac)
  253. Subject: Re: Think C 5.0 announced
  254. Message-ID: <9108071355.AA19036@leander.think.com>
  255. In-Reply-To: Your message of "07 Aug 91 11:42:32 GMT."
  256.              <9108071142.AA28070@enet-gw.pa.dec.com>
  257. Newsgroups: fa.think-c
  258. Lines: 20
  259. Date: 7 Aug 91 13:55:50 GMT
  260.  
  261.  
  262.    From: Martin Minow 07-Aug-1991 0743 <minow@ranger.enet.dec.com>
  263.    Date: 7 Aug 91 11:42:32 GMT
  264.  
  265.    The Think folk are all at MacWorld, so I'll post a quick note.
  266.  
  267.    Think 5.0 (and Think Pascal 4.0 (?)) were released on Monday.  Think C
  268.    is <lots of good stuff>
  269.  
  270. I talked to Phil Shapiro at the show, and he confirmed that my two pet
  271. peeves were fixed in 5.0:
  272.  
  273. 1. If you supply a full prototype for a pointer to function, the
  274. compiler actually uses the prototype. This was obscure, but a real
  275. killer if it bit you.
  276.  
  277. 2. When argument types mismatch, the compiler tells you which argument
  278. it's talking about. It doesn't tell you the actual and expected types,
  279. but you can't win them all.
  280.  
  281. 
  282. 
  283. Path: ucivax!gateway
  284. From: nagel@ics.uci.edu (Mark Nagel)
  285. Subject: ARCHIVE: Communication Toolbox Glue
  286. Message-ID: <23426.681576384@ics.uci.edu>
  287. Newsgroups: fa.think-c
  288. Reply-To: nagel@ics.uci.edu
  289. Lines: 26
  290. Date: 7 Aug 91 14:46:31 GMT
  291. X-Phone: (714) 753-0414 x115
  292.  
  293.  
  294. Date: Mon, 5 Aug 91 11:51:12 edt
  295. From: Phil Shapiro <phils@chaos.cs.brandeis.EDU>
  296. Subject: CTBGlue-C.cpt.hqx
  297.  
  298. I'm submitting a converted version of the Communications Toolbox Glue
  299. for THINK C 4.0.x for the think-c archives.  This is the "official"
  300. conversion, and it's recommended if you want to take advantage of the
  301. new CTB calls and you're not using the interim System 7.0 headers.
  302. This archive doesn't contain any documentation about how to use the
  303. CTB, and it doesn't include the CTB INIT itself or any Tools.  For
  304. more info about the CTB, contact APDA.
  305.  
  306. I thought that these interfaces had already been posted to the think-c
  307. archives, but I couldn't find them there.  Disregard this is you've
  308. already got these files.
  309.  
  310. This is a binhex'd Compact Pro archive.
  311.  
  312.     -phil
  313. ----
  314.    Phil Shapiro                           Technical Support Analyst
  315.    Language Products Group                     Symantec Corporation
  316.         Internet: phils@chaos.cs.brandeis.edu
  317.  
  318. [saved as: /mac/think-c/symantec/ctbglue.hqx; 28K]
  319. 
  320. 
  321. Path: ucivax!gateway
  322. From: e-reuter@uiuc.edu (Erik Reuter)
  323. Subject: Re: Think C 5.0 announced
  324. Message-ID: <199108071801.AA10247@ux1.cso.uiuc.edu>
  325. Newsgroups: fa.think-c
  326. Lines: 15
  327. Date: 7 Aug 91 18:01:42 GMT
  328.  
  329.      In case you are interested about the upgrade to 5.0, I called Symantec
  330. Customer Service ( 1-800-441-7234 ) and after a long wait, spoke to someone
  331. who took my upgrade order for 5.0. She said they were taking "manual
  332. orders" which means that she writes it down, and later (when they get the
  333. database program ready to handle the upgrade?) they will enter it into the
  334. computer. She didn't know when it would ship, but said it would be in a few
  335. weeks. It cost $89 + tax + $5 shipping. Incidentally, be prepared for a 10
  336. minute wait on the line until you are helped.
  337.  
  338.      If anyone knows any more about when things will ship, please let us
  339. know.
  340.  
  341.  
  342.   Erik Reuter  e-reuter@uiuc.edu
  343.  
  344. 
  345. 
  346. Path: ucivax!gateway
  347. From: evensen@husc.harvard.edu
  348. Subject: Think C 5.0 announced
  349. Message-ID: <9108072117.AA11489@husc10>
  350. In-Reply-To: Erik Reuter's message of 7 Aug 91 18:01:42 GMT <199108071801.AA10247@ux1.cso.uiuc.edu>
  351. Newsgroups: fa.think-c
  352. Lines: 6
  353. Date: 7 Aug 91 21:18:32 GMT
  354.  
  355.  
  356. The customer service line is very busy processing upgrades for some of
  357. Symantec's DOS products.  There is a line for THINK C upgrades it is
  358. 1-800-228-4122 x811.  I called them and got through very quickly.
  359.  
  360. --Erik
  361. 
  362. 
  363. Path: ucivax!gateway
  364. From: ewright@bach.convex.com ("Edward V. Wright")
  365. Subject: Re: Think C 5.0 announced
  366. Message-ID: <9108072118.AA06346@bach.convex.com>
  367. Newsgroups: fa.think-c
  368. Lines: 3
  369. Date: 7 Aug 91 21:18:47 GMT
  370.  
  371. I was told to allow "two to four weeks" for delivery.  I was also told
  372. that the price would be $69 + tax + shipping (maybe a discount because
  373. I ordered C and Pascal both?).
  374. 
  375. 
  376. Path: ucivax!gateway
  377. From: phils@chaos.cs.brandeis.edu (Phil Shapiro)
  378. Subject: THINK C and THINK Pascal Press Release
  379. Message-ID: <9108072227.AA28856@chaos.cs.brandeis.edu>
  380. Newsgroups: fa.think-c
  381. Lines: 103
  382. Date: 7 Aug 91 22:27:12 GMT
  383.  
  384. SYMANTEC ANNOUNCES NEW VERSION OF TOP-RATED MACINTOSH
  385. DEVELOPMENT ENVIRONMENTS
  386.  
  387. Cupertino, CA -- August 6, 1991 -- Enabling programmers to
  388. fully utilize the capabilities and features of System 7,
  389. Symantec Corporation (NASDAQ: SYMC) today announced THINK C
  390. version 5.0 and THINK Pascal version 4.0, enhanced versions
  391. of its popular development environments.
  392.  
  393. "As the market leader in Macintosh development environments,
  394. Symantec provides programmers with strong tools that fully
  395. exploit state-of-the-art technology," said Gordon E.
  396. Eubanks, Jr., president and chief executive officer.  "With
  397. support for Apple's System 7 and enhanced object-oriented
  398. programming capabilites, THINK C version 5.- and THINK
  399. Pascal version 4.0 are the ideal tools for Macintosh
  400. developers."
  401.  
  402. New features in THINK C version 5.0
  403.  
  404. The multi-pass, optimizing compiler and code generator in
  405. THINK C version 5.0 have been completely rewritten to
  406. produce the most compact, efficient C code on the Macintosh.
  407. An optional global optimizer further reduces code size and
  408. execution time.  THINK C is now 100 percent ANSI conformant;
  409. ANSI conforming applications written in THINK C are portable
  410. to other platforms.
  411.  
  412. With THINK C programmers can use the latest System 7
  413. technologies.  THINK C runs under System 7 in both 24- and
  414. 32-bit modes, with or without virtual memory.
  415.  
  416. New object-oriented programming (OOP) tools include a class
  417. browser that provides a graphical view of a program's
  418. classes and makes navigating and editing OOP code easier.
  419. The THINK Class Library provides the building blocks for a
  420. standard Macintosh user interface such as windows, menus and
  421. controls.  THINK Class Library enhancements include new
  422. classes for dialogs, multi-window documents and System 7
  423. support.
  424.  
  425. Markers have been added to the THINK C editor for moving
  426. more easily through large source files.  The integrated
  427. source-level debugger remembers breakpoints and data
  428. displays between sessions, enabling programmers to keep
  429. their place in the program.  Other new features include
  430. Disassemble and Preprocess commands that allow programmers
  431. to view their code in different forms, and the ability to
  432. generate link maps during the compile cycle.  An increase in
  433. the jump table limit now allows THINK C to support large
  434. projects.
  435.  
  436. New features in THINK Pascal version 4.0
  437.  
  438. The THINK Pascal compiler generates the smallest and fastest
  439. Pascal code on the Macintosh.  Like THINK C, all of the
  440. tools in the THINK Pascal environment are completely
  441. integrated for fast turnaround.  THINK Pascal supports
  442. System 7, allowing developers to write programs that use
  443. System 7 technologies.  THINK Pascal runs under System 7 in
  444. both 24- and 32-bit modes, with or without virtual memory
  445. and supports the required set of Apple events.
  446.  
  447. The new Instant Project feature lets programmers create a
  448. project with a single command, automatically opening the
  449. project document, loading the libraries and opening a source
  450. file in the editor.  There is also support for larger
  451. projects, including Far Code and multiple segments in any
  452. project type, allowing programmers to develop very large
  453. applications more quickly.
  454.  
  455. THINK Pascal includes a Pascal version of the enhanced THINK
  456. Class Library to provide Macintosh programmers with
  457. additional object-oriented programming capabilites.  "Apple
  458. is committed to the success of our third-party developers,"
  459. said Roger Heinen, vice president of Macintosh Software
  460. Architecture at Apple Computer, Inc.  "We are extremely
  461. pleased to see the the two popular development environments
  462. for the Macintosh, THINK C and THINK Pascal, now offer
  463. complete System 7 support.  These products really underscore
  464. Symantec's committment to the thousands of Macintosh
  465. programmers who are eager to take full advantage of system 7
  466. to build new and exciting Macintosh applications."
  467.  
  468. THINK C version 5.0 requires a Macintosh Plus or higher with
  469. a minimum or 2 MB or RAM.  The debugger requires 2 MB of RAM
  470. and MultiFinder.  System Software version 6.0 or higher is
  471. required.  A hard disk is recommended and required for the
  472. THINK Class Library.  The suggested retail price is $299.
  473. Registered users can upgrade for $89.
  474.  
  475. THINK Pascal version 4.0 requires a Macintosh Plus or higher
  476. with a minimum of 1 MB or RAM (2 MB recommended); 4 MB
  477. recommended for use with the THINK Class Library or Apple's
  478. MacApp.  System Software version 6.0 or later is required.
  479. A hard disk is recommended and required for the THINK Class
  480. Library or MacApp.  The suggested retail price is $249.
  481. Registered users can upgrade for $69.
  482.  
  483. THINK C version 5.0 and THINK Pascal version 4.0 are
  484. available now through Symantec's network of distributors and
  485. resellers.  For further information on either product,
  486. customers can call 800-441-7234 or 408-252-3570.
  487. 
  488. 
  489. Path: ucivax!gateway
  490. From: mkelly@apple.com
  491. Subject: Problems with UpdateGWorld...?
  492. Message-ID: <9108072302.AA17570@apple.com>
  493. Newsgroups: fa.think-c
  494. Lines: 37
  495. Date: 7 Aug 91 23:02:55 GMT
  496.  
  497.  
  498. I need to frequently change the size of my GWorld.  So, I'm assuming I
  499. can (and should) use UpdateGWorld() to do it.  So I send my GWorldPtr
  500. to UpdateGWorld, with the new boundsRect, like so:
  501.  
  502. /* I'm calling this from within a Think Class Library object. */
  503. /* macWorld is an instance variable for the object, declared as */
  504. /* a GWorldPtr, and initialized thus: */
  505. /*     theErr = NewGWorld( &macWorld, depth, &bounds, NIL, NIL, 0L ); */
  506. /* pixelDepth is also an instance variable, and is set at the time of */
  507. /* the above call.  theBounds is passed to the routine as a Rect *, */
  508. /* and represents the new boundsRect for the offscreen world (always */
  509. /* a larger Rect than the old boundsRect) */
  510.  
  511. MoveHHi( (Handle) this );
  512. HLock( (Handle) this );
  513. result = UpdateGWorld( &macWorld, pixelDepth, theBounds, NIL, NIL, clipPix );
  514. HUnlock( (Handle) this );
  515.  
  516.  
  517. It seems to work, i.e. macWorld->portRect and
  518. (*macWorld->portPixMap)->boundsRect are equivalent to theBounds after the
  519. call, and 'result' is zero.  The problem is that I seem to be losing the
  520. contents of my PixMap in the process.  I.e. the previous image becomes
  521. garbage.  Is this supposed to happen?  I got the distinct impression from
  522. IM-VI that it isn't.  What could I be doing wrong?  How can I avoid the
  523. problem if not solve it (somehow increase the bounds of my PixMap without
  524. calling UpdateGWorld)?
  525.  
  526. I've been working on this for the last 24 hours or so - any and all help
  527. will be rewarded with my deepest gratitude. :)
  528.  
  529. Mike.
  530. _____________________________________________________________________________
  531. Michael A. Kelly                                   America Online: Michael792
  532. mkelly@cs.uoregon.edu or mkelly@apple.com              Compu$erve: 73567,1651
  533. _____________________________________________________________________________
  534. 
  535. 
  536. Path: ucivax!gateway
  537. From: mkelly@apple.com
  538. Subject: Problems with UpdateGWorld...?
  539. Message-ID: <9108080126.AA04803@apple.com>
  540. Newsgroups: fa.think-c
  541. Lines: 33
  542. Date: 8 Aug 91 01:27:15 GMT
  543.  
  544.  
  545. I need to frequently change the size of my GWorld.  So, I'm assuming I
  546. can (and should) use UpdateGWorld() to do it.  So I send my GWorldPtr
  547. to UpdateGWorld, with the new boundsRect, like so:
  548.  
  549. /* I'm calling this from within a Think Class Library object. */
  550. /* macWorld is an instance variable for the object, declared as */
  551. /* a GWorldPtr, and initialized thus: */
  552. /*     theErr = NewGWorld( &macWorld, depth, &bounds, NIL, NIL, 0L ); */
  553. /* pixelDepth is also an instance variable, and is set at the time of */
  554. /* the above call.  theBounds is passed to the routine as a Rect *, */
  555. /* and represents the new boundsRect for the offscreen world (always */
  556. /* a larger Rect than the old boundsRect) */
  557.  
  558. MoveHHi( (Handle) this );
  559. HLock( (Handle) this );
  560. result = UpdateGWorld( &macWorld, pixelDepth, theBounds, NIL, NIL, clipPix );
  561. HUnlock( (Handle) this );
  562.  
  563.  
  564. It seems to work, i.e. macWorld->portRect and
  565. (*macWorld->portPixMap)->boundsRect are equivalent to theBounds after the
  566. call, and 'result' is zero.  The problem is that I seem to be losing the
  567. contents of my PixMap in the process.  I.e. the previous image becomes
  568. garbage.  Is this supposed to happen?  I got the distinct impression from
  569. IM-VI that it isn't.  What could I be doing wrong?  How can I avoid the
  570. problem if not solve it (somehow increase the bounds of my PixMap without
  571. calling UpdateGWorld)?
  572.  
  573. I've been working on this for the last 24 hours or so - any and all help
  574. will be rewarded with my deepest gratitude. :)
  575.  
  576. Mike.
  577. 
  578. 
  579. Path: ucivax!gateway
  580. From: Chris_McNeil@macsmtp.csd.unb.ca (Chris McNeil)
  581. Subject: fortune database
  582. Message-ID: <9108080826.aa22340@ics.uci.edu>
  583. X-Mailer: QuickMail/SMTP interface.
  584. Newsgroups: fa.think-c
  585. Lines: 6
  586. Date: 8 Aug 91 15:26:35 GMT
  587.  
  588. I need a fortune database ( something like fortune.dat on SUN's) but in ascii
  589. form  for a cookie server for MAC's that I'm writing. Does anyone know where to
  590. get one ?
  591.  
  592. Chris McNeil
  593. cjm@unb.ca
  594. 
  595. 
  596. Path: ucivax!gateway
  597. From: k044477@hobbes.kzoo.edu (Jamie McCarthy)
  598. Subject: Sneaky class-changing
  599. Message-ID: <9108091829.AA16916@hobbes.kzoo.edu>
  600. X-Mailer: ELM [version 2.3 PL11]
  601. Newsgroups: fa.think-c
  602. Lines: 55
  603. Date: 9 Aug 91 18:28:57 GMT
  604.  
  605. Let me explain the situation first, and then the two ways I'm thinking
  606. of approaching it.  I'm looking for feedback about any of this; either
  607. email or net discussion is probably fine.
  608.  
  609. The situation is:  I've got a pane in a window whose display and
  610. reactions to events needs to change--in other words, which needs to
  611. change classes.  When one of these transitions occurs, I need to tell
  612. it to do some transitory stuff like changing palettes, get it to display
  613. something, make _some_kind_ of changeover, and suddenly have a new class
  614. occupying the same space in the window, with _no_ update event pending
  615. for that space.  (The new class will start off displaying exactly the
  616. same thing that the old class departed with.)
  617.  
  618. Approach One:  dink with the object.  Both these CPane subclasses are
  619. about four levels down from CPane, and are a lot more similar than they
  620. are different.  Can I physically change the object type, eg:
  621.  
  622. CPaneSubclass1 *oldPane;
  623. CPaneSubclass2 *newPane;
  624. oldPane->doPreChangeoverStuff();
  625. newPane = oldPane;
  626. SetHandleSize((Handle) newPane, sizeof(CPaneSubclass2));
  627. bless(newPane, CPaneSubclass2);
  628. newPane->doPostChangeoverStuff(); /* including init'ing the new class
  629. variables, which contain trash--but those vars common to both classes
  630. are still valid */
  631.  
  632. I don't see any reason why this wouldn't work, but then again there may
  633. be evil things lurking in the hearts of THINK objects.  Presumably, if
  634. changing the handle size works, so would copying the handle with
  635. HandAndHand and disposing of the original with DisposHandle instead of
  636. oldPane->Dispose().
  637.  
  638. Approach Two:  dink with the invalRgn.  This would mean creating a
  639. method like validateMyFrame() for all my CPane subclasses; the code
  640. would look like:
  641.  
  642. CPaneSubclass1 *oldPane;
  643. CPaneSubclass2 *newPane;
  644. oldPane->doPreChangeoverStuff();
  645. oldPane->Dispose(); /* invalidates the pane's frame */
  646. newPane = new(CPaneSubclass2);
  647. newPane->ICPaneSubclass2(...);
  648. newPane->validateMyFrame(); /* re-validates the same area, before any
  649. update events get called */
  650.  
  651. Is this plausible as well?
  652.  
  653. Has anyone does anything like this before?  If not, which approach looks
  654. on the face of things more reasonable?
  655. --
  656.  Jamie McCarthy                    k044477@kzoo.edu
  657.  Disclaimer:  it's my responsibility iff they're my words.
  658.  The bear eagerly wolfs down your food, after which he seems to calm
  659.  down considerably and even becomes rather friendly.
  660. 
  661. 
  662. Path: ucivax!gateway
  663. From: ECO861771@ecostat.aau.dk ("Povl H. Pedersen")
  664. Subject: Class library and MPW C++
  665. Message-ID: <3175A3B38C5F009405@vms2.uni-c.dk>
  666. Newsgroups: fa.think-c
  667. X-Vms-To: IN::"think-c@ics.uci.edu"
  668. Lines: 13
  669. Date: 10 Aug 91 09:01:34 GMT
  670. X-Envelope-To: think-c@ics.uci.edu
  671.  
  672.  
  673. Is there anybody out there who has tried to compile the class library
  674. in MPW C++, and thus get a real object oriented class out of it.
  675. C++ is still far better than ANSI C, that is why I had to switch to MPW
  676. quite recently, and I like it. It is much slower to compile though,
  677. but the complete MPW environment is much better.
  678.  
  679. How much has the class library been enhanced in the new 5.0 ? And is
  680. these portable into C++ without too much trouble ? I am very interested
  681. in this, but I think I will upgrade anyway.
  682.  
  683. Povl H. Pedersen
  684. eco861771@ecostat.aau.dk
  685. 
  686. 
  687. Path: ucivax!gateway
  688. From: kkirksey@eng.auburn.edu ("Kenneth B. Kirksey")
  689. Subject: 4.0.5 / Sys 7 Debugger Problem
  690. Full-Name: Kenneth B. Kirksey
  691. Message-ID: <9108110236.AA29476@eng.auburn.edu>
  692. Newsgroups: fa.think-c
  693. Lines: 17
  694. Date: 11 Aug 91 02:36:59 GMT
  695.  
  696.  
  697.     I recently upgraded to System 7 and a couple of days after that I updated
  698. Think C and the Think C Debugger to 4.0.5.  I didn't use my old version of
  699. Think C (4.0.4?) under Sys 7 so I don't know if that version would not have had
  700. this problem.
  701.  
  702.     What this problem is:  When I chose "Use Debugger" and run my program (which
  703. is a simple program that does little more that output to a console window)  the
  704. debugger starts up and immediately starts running.  It doesn't show any source
  705. in the source window, and doesn't let me set any data values to watch.  It just
  706. goes.  And when the program crashes, it just locks up the debugger and
  707. doesn't display any info.  Has anyone else had this problem, or have any
  708. idea what might be causing it?
  709.  
  710.                                  Ken
  711.  
  712. kkirksey@eng.auburn.edu
  713. 
  714. 
  715. Path: ucivax!gateway
  716. From: kkirksey@eng.auburn.edu ("Kenneth B. Kirksey")
  717. Subject: Debugger Problem
  718. Full-Name: Kenneth B. Kirksey
  719. Message-ID: <9108110302.AA29498@eng.auburn.edu>
  720. Newsgroups: fa.think-c
  721. Lines: 15
  722. Date: 11 Aug 91 03:02:53 GMT
  723.  
  724.  
  725.     I recently upgraded to System 7 and a couple of days after that I updated
  726. Think C and the Think C Debugger to 4.0.5.  I didn't use my old version of
  727. Think C (4.0.4?) under Sys 7 so I don't know if that version would not have had
  728. this problem.
  729.  
  730.     What this problem is:  When I chose "Use Debugger" and run my program (which
  731. is a simple program that does little more that output to a console window)  the
  732. debugger starts up and immediately starts running.  It doesn't show any source
  733. in the source window, and doesn't let me set any data values to watch.  It just
  734. goes.  And when the program crashes, it just locks up the debugger and
  735. doesn't display any info.  Has anyone else had this problem, or have any
  736. idea what might be causing it?
  737.  
  738.                                  Ken
  739. 
  740. 
  741. Path: ucivax!gateway
  742. From: infoserv!apple!well!bhamlin@zardoz.uucp ("Brian M. Hamlin")
  743. Subject: Re:  Problems with UpdateGWorld...?
  744. Message-ID: <9108082353.AA18926@well.sf.ca.us>
  745. Newsgroups: fa.think-c
  746. Lines: 5
  747. Date: 11 Aug 91 17:07:27 GMT
  748.  
  749.   The problem is that the gWorldFlags must be set to either
  750. clipPix or stretchPix. 0 results in no more bits!
  751.   This is not immediately obvious from the docs...
  752.  
  753.   -Brian
  754. 
  755. 
  756. Path: ucivax!gateway
  757. From: phils@chaos.cs.brandeis.edu (Phil Shapiro)
  758. Subject: Debugger Problem
  759. Message-ID: <9108112257.AA17495@chaos.cs.brandeis.edu>
  760. In-Reply-To: "Kenneth B. Kirksey"'s message of 11 Aug 91 03:02:53 GMT <9108110302.AA29498@eng.auburn.edu>
  761. Newsgroups: fa.think-c
  762. Lines: 30
  763. Date: 11 Aug 91 22:57:40 GMT
  764.  
  765.    I recently upgraded to System 7 and a couple of days after that I
  766.    updated Think C and the Think C Debugger to 4.0.5.  I didn't use my
  767.    old version of Think C (4.0.4?) under Sys 7 so I don't know if that
  768.    version would not have had this problem.
  769.  
  770. Don't use versions 4.0.3 or 4.0.4; they were beta releases that were
  771. made available to developers that used beta versions of Apple's System
  772. 7. You should use THINK C 4.0.5 (or 5.0) with System 7.
  773.  
  774.    What this problem is: When I chose "Use Debugger" and run my
  775.    program (which is a simple program that does little more that
  776.    output to a console window) the debugger starts up and immediately
  777.    starts running.  It doesn't show any source in the source window,
  778.    and doesn't let me set any data values to watch.  It just goes.
  779.    And when the program crashes, it just locks up the debugger and
  780.    doesn't display any info.  Has anyone else had this problem, or
  781.    have any idea what might be causing it?
  782.  
  783. This is usually a sign of running VM under System 7.  Apple's VM
  784. scheme (unlike Connectix's Virtual) uses a different format for the
  785. stack during exception handling than was previously used.  This breaks
  786. THINK C and THINK Pascal's debugger code, and will cause them to crash
  787. or be ineffective.  Don't use Apple's VM with the THINK C 4.0.x
  788. Debugger, and it should work correctly.
  789.  
  790.     -phil
  791. ----
  792.    Phil Shapiro                           Technical Support Analyst
  793.    Language Products Group                     Symantec Corporation
  794.         Internet: phils@chaos.cs.brandeis.edu
  795. 
  796. 
  797. Path: ucivax!gateway
  798. From: carlos@wateol.uwaterloo.ca
  799. Subject: Rotating PICTs
  800. Message-ID: <9108121554.AA11313@UWaterloo.ca>
  801. Newsgroups: fa.think-c
  802. Lines: 11
  803. Date: 12 Aug 91 16:15:15 GMT
  804.  
  805. I think the subject says it all. How can I rotate PICT images by 90 degrees
  806. like MacDraw does. I know of two approaches in theory (parse the pict, or
  807. customize quickdraw low-level drawing routines) but I need real Code. Can
  808. anybody help with this, please. Any pointers and/or code fragments will be
  809. very appreciated.
  810.  
  811.  
  812. Carlos Bazzarella.
  813. University of Waterloo.
  814. carlos@wateol.UWaterloo.Ca
  815.  
  816. 
  817. 
  818. Path: ucivax!gateway
  819. From: carlos@wateol.uwaterloo.ca
  820. Subject: MPW fortran and THINK C 4.0.2
  821. Message-ID: <9108122235.AA11665@UWaterloo.ca>
  822. Newsgroups: fa.think-c
  823. Lines: 11
  824. Date: 12 Aug 91 22:50:05 GMT
  825.  
  826. Does anyone out there have any experience linking MPW fortran code with
  827. THINK C?  I'm using Language Systems Fortran 2.1.  I've tried converting
  828. what appear to be object files to THINK C libraries using oConv without
  829. success (wrong object file format).  I'm also quite concerned about
  830. parameter passing and function calling, since THINK C doesn't have a
  831. fortran keyword.
  832.  
  833. Thanks for your help,
  834.  
  835. Steve Fry
  836.  
  837. 
  838. 
  839. Path: ucivax!gateway
  840. From: mkelly@apple.com
  841. Subject: Re: Problems with UpdateGWorld...?  *** Solution ***
  842. Message-ID: <9108130154.AA04811@apple.com>
  843. Newsgroups: fa.think-c
  844. Lines: 42
  845. Date: 13 Aug 91 01:54:35 GMT
  846.  
  847.  
  848. Several people responded to my desperate plea for help regarding my
  849. ill-fated call to UpdateGWorld, saying that they, too, had had problems.
  850. One person even went so far as to say the problem was fixed in System 7.
  851. I finally called up Bruce Leak to see if there was really anything wrong
  852. with UpdateGWorld, and sure enough, his answer was "Use System 7".  (I was
  853. using an fx with System 6.0.7.)  So I switched to System 7 (finally) and
  854. my program stopped crashing.  The PixMap was still getting trashed during
  855. each call to UpdateGWorld, but the new PixMap was valid (whereas before it
  856. wasn't).  So I would end up with garbage everywhere except for what I drew
  857. after the call to UpdateGWorld.  According to every bit of documentation
  858. I had, I was calling it correctly:
  859.  
  860. flags = UpdateGWorld( &myWorld, oldDepth, &newBounds, nil, nil, clipPix );
  861.  
  862. ...but flags was coming up 0x20100000 (which is stretchPix + reallocPix).  I
  863. checked the value of clipPix in the Think C Debugger, and it was 0.  "Hmmm..."
  864. I thought.  So I changed the call to:
  865.  
  866. flags = UpdateGWorld( &myWorld, oldDepth, &newBounds,
  867.             nil, nil, 1L << clipPixBit );
  868.                       ^^^^^^^^^^^^^^^^
  869. ...and it worked!!  flags was 0x10100000, which is clipPix + reallocPix
  870. (so doesn't that mean that my image was discarded?), and my image remained
  871. intact.
  872.  
  873. But why is clipPix zero?  It is defined in Quickdraw32Bit.h as
  874.  
  875. #define clipPix  (1L << clipPixBit)
  876.  
  877.  
  878. I'm confused.... but happily confused....
  879.  
  880.  
  881. Thanks again to all who responded,
  882.  
  883.  
  884. Mike.
  885. _____________________________________________________________________________
  886. Michael A. Kelly                                   America Online: Michael792
  887. mkelly@cs.uoregon.edu or mkelly@apple.com              Compu$erve: 73567,1651
  888. _____________________________________________________________________________
  889. 
  890. 
  891. Path: ucivax!gateway
  892. From: drs@bach.ccd.bnl.gov ("David R. Stampf")
  893. Subject: Random
  894. Message-ID: <9108130227.AA01269@bach.ccd.bnl.gov>
  895. Newsgroups: fa.think-c
  896. Lines: 41
  897. Date: 13 Aug 91 02:31:34 GMT
  898.  
  899.  
  900. I've been trying to use Random (IM-1) and randSeed with some disappointing
  901. results. The program is:
  902.  
  903. /*
  904.  *    random seems to be stuck!
  905.  */
  906.  
  907. main()
  908. {
  909.     int i;
  910.  
  911.     printf("\n");
  912.     GetDateTime(&randSeed);
  913.     printf("%lx\n",randSeed);
  914.  
  915.     i = Random();
  916.     printf("%d\n",i);
  917.  
  918.     /* randSeed should have changed. */
  919.  
  920.     printf("%lx\n",randSeed);
  921. }
  922.  
  923.  
  924. ---
  925.  
  926.     I set the randSeed from GetDateTime and print it out. I then ask for
  927. one random number, then print out randSeed again. When the program runs
  928. (under think-c with or without the debugger or as an application) I *always*
  929. get the same random number, and randSeed *never* changes. A typical output
  930. looks like:
  931.  
  932. a4ccb586
  933. 16807
  934. a4ccb586
  935.  
  936.  
  937. Any ideas about what gives here?
  938.  
  939.     < dave
  940. 
  941. 
  942. Path: ucivax!gateway
  943. From: MANUTTER@grove.iup.edu ("Mark Nutter, Apple Support")
  944. Subject: Re: Random seems to be stuck
  945. Message-ID: <D17884F9E0401EED@grove.iup.edu>
  946. Newsgroups: fa.think-c
  947. X-VMS-To: NETMAIL%"think-c@ics.uci.edu"
  948. Lines: 18
  949. Date: 13 Aug 91 12:35:59 GMT
  950. X-Envelope-to: think-c@ics.uci.edu
  951. X-Organization: Indiana University of Pennsylvania
  952.  
  953. I ran afoul of the same quirk a while back, and eventually came to the
  954. conclusion that it was because I was mixing <stdio> calls with standard Mac
  955. Toolbox calls.  Think C <stdio> seems to set up its own grafport, with its own
  956. randSeed, separate and apart from the one you are setting.  random() seems to
  957. access the <stdio> randSeed you are NOT setting.
  958.  
  959. My solution was to call all the InitXxxx... calls like InitGraf(&thePort),
  960. InitFonts, etc., before the call to printf("\n"); (at least I THINK it was
  961. before printf();).  This seems to synchronize the randSeeds.
  962.  
  963. -----------------------------------------------------------------------------
  964. Mark Nutter                                                      MANUTTER@IUP
  965. Apple Support Manager
  966. Indiana University of Pennsylvania
  967. G-4 Stright Hall, IUP
  968. Indiana, PA 15705
  969. "You can lead a horse to water, but you can't look in his mouth." - Archie B.
  970. =============================================================================
  971. 
  972. 
  973. Path: ucivax!gateway
  974. From: ephraim@think.com (Ephraim Vishniac)
  975. Subject: Assembler stronger in 5.0?
  976. Message-ID: <9108131253.AA10425@leander.think.com>
  977. Newsgroups: fa.think-c
  978. Lines: 10
  979. Date: 13 Aug 91 12:53:33 GMT
  980.  
  981.  
  982. Something I forgot to ask Phil Shapiro at the show:
  983.  
  984. Through Think C 4.0.5, the in-line assembler didn't recognize the
  985. difference of two constant addresses as a constant. This made it
  986. difficult to build some kinds of tables.
  987.  
  988. Is this fixed in 5.0? If it is, then I'll be the first to say that
  989. Think C is the nicest assembler environment for the Mac.
  990.  
  991. 
  992. 
  993. Path: ucivax!gateway
  994. From: russotto@eng.umd.edu ("Matthew T. Russotto")
  995. Subject: Re:  Random
  996. Message-ID: <9108131335.AA21978@pepsi.eng.umd.edu>
  997. Newsgroups: fa.think-c
  998. Lines: 2
  999. Date: 13 Aug 91 13:34:36 GMT
  1000.  
  1001. When you initialize the quickdraw globals with the console library, the standard
  1002. QD globals (randseed, etc) are not the used by Quickdraw.
  1003. 
  1004. 
  1005. Path: ucivax!gateway
  1006. From: phils@chaos.cs.brandeis.edu (Phil Shapiro)
  1007. Subject: Assembler stronger in 5.0?
  1008. Message-ID: <9108131529.AA11199@chaos.cs.brandeis.edu>
  1009. In-Reply-To: Ephraim Vishniac's message of 13 Aug 91 12:53:33 GMT <9108131253.AA10425@leander.think.com>
  1010. Newsgroups: fa.think-c
  1011. Lines: 19
  1012. Date: 13 Aug 91 15:30:04 GMT
  1013.  
  1014.    Through Think C 4.0.5, the in-line assembler didn't recognize the
  1015.    difference of two constant addresses as a constant. This made it
  1016.    difficult to build some kinds of tables.
  1017.  
  1018.    Is this fixed in 5.0? If it is, then I'll be the first to say that
  1019.    Think C is the nicest assembler environment for the Mac.
  1020.  
  1021. Sorry, but this feature didn't make it into C 5.0.  The inline
  1022. assembler was rewritten for C 5.0, but it doesn't support any new
  1023. features that weren't present in C 4.0.  (I'll add it to to our
  1024. requests list for the next major release.)
  1025.  
  1026. Do we still qualify for 2nd nicest :-) ?
  1027.  
  1028.     -phil
  1029. ----
  1030.    Phil Shapiro                           Technical Support Analyst
  1031.    Language Products Group                     Symantec Corporation
  1032.         Internet: phils@chaos.cs.brandeis.edu
  1033. 
  1034. 
  1035. Path: ucivax!gateway
  1036. From: swenson%john.Berkeley.EDU@ucbvax.berkeley.edu (Kirk Swenson)
  1037. Subject: Assembler in 5.0
  1038. Message-ID: <9108131732.AA02273@john.berkeley.edu>
  1039. Newsgroups: fa.think-c
  1040. Lines: 16
  1041. Date: 13 Aug 91 17:32:23 GMT
  1042.  
  1043. Regarding the use of the difference of two constant addresses as a constant
  1044. in the inline assembler, Phil Shapiro writes:
  1045.  
  1046. >Sorry, but this feature didn't make it into C 5.0.  The inline
  1047. >assembler was rewritten for C 5.0, but it doesn't support any new
  1048. >features that weren't present in C 4.0.  (I'll add it to to our
  1049. >requests list for the next major release.)
  1050.  
  1051. I wouldn't think that this would be such a difficult feature to add.
  1052. Do we really have to wait for the next MAJOR release?  That could be
  1053. quite a while, and I've been missing this feature as well.  I'm getting
  1054. tired of writing code to subtract two addresses rather than having the
  1055. assembler take care of it.
  1056.  
  1057. Kirk Swenson
  1058. swenson@john.berkeley.edu
  1059. 
  1060. 
  1061. Path: ucivax!gateway
  1062. From: dedreb@arco.com
  1063. Subject: System 7.0 Headers and LaunchApplication
  1064. Message-ID: <9108132048.AA08429@Arco.COM>
  1065. Newsgroups: fa.think-c
  1066. Lines: 14
  1067. Date: 13 Aug 91 20:49:05 GMT
  1068.  
  1069. I am trying to use the new LaunchApplication routine in System 7.0 using
  1070. the new System 7.0 headers and libraries from THINK C.  Unfortunately, I
  1071. keep getting the link error "undefined:  LaunchApplication".  I have
  1072. #included <Processes.h> in my source code and the new MacTraps library in
  1073. my project file.  Still, no luck.  Incidentally, I can call
  1074. LaunchDeskAccessory without any problems.
  1075.  
  1076. Is there a problem here with the 7.0 headers and libraries, or am I doing
  1077. something wrong?
  1078.  
  1079. -------------------------------------
  1080. - Richard Beecher (dedreb@arco.com) -
  1081. --------------------------------------
  1082.  
  1083. 
  1084. 
  1085. Path: ucivax!gateway
  1086. From: phils@chaos.cs.brandeis.edu (Phil Shapiro)
  1087. Subject: System 7.0 Headers and LaunchApplication
  1088. Message-ID: <9108132148.AA16246@chaos.cs.brandeis.edu>
  1089. In-Reply-To: dedreb@arco.com's message of 13 Aug 91 20:49:05 GMT <9108132048.AA08429@Arco.COM>
  1090. Newsgroups: fa.think-c
  1091. Lines: 26
  1092. Date: 13 Aug 91 21:48:54 GMT
  1093.  
  1094.    I am trying to use the new LaunchApplication routine in System 7.0
  1095.    using the new System 7.0 headers and libraries from THINK C.
  1096.    Unfortunately, I keep getting the link error "undefined:
  1097.    LaunchApplication".  I have #included <Processes.h> in my source
  1098.    code and the new MacTraps library in my project file.  Still, no
  1099.    luck.  Incidentally, I can call LaunchDeskAccessory without any
  1100.    problems.
  1101.  
  1102.    Is there a problem here with the 7.0 headers and libraries, or am I
  1103.    doing something wrong?
  1104.  
  1105. The glue for LaunchApplication was left out of the 7.0 headers by
  1106. accident.  Here's the inline definition for LaunchApplicaion:
  1107.  
  1108. pascal OSErr LaunchApplication(const LaunchParamBlockRec *LaunchParams)
  1109.     = {0x205F,0xA9F2,0x3E80};
  1110.  
  1111. If you don't set the option launchContinue in the field
  1112. launchControlFlags (IM VI, 29-15), i.e. your application will quit,
  1113. then you must call the routine _exiting(1) before you call
  1114. LaunchApplication.  If you don't do this, strange things will happen.
  1115.  
  1116. See the implementation of the unix library routine exec(), in the file
  1117. unixmisc.c for an example of this.
  1118.  
  1119.     -phil
  1120. 
  1121. 
  1122. Path: ucivax!gateway
  1123. From: cmacfarl@crimee.ICS.UCI.EDU (Craig)
  1124. Subject: getting the subclassed object
  1125. Message-ID: <9108141123.aa22830@PARIS.ICS.UCI.EDU>
  1126. Newsgroups: fa.think-c
  1127. Lines: 11
  1128. Date: 14 Aug 91 18:24:03 GMT
  1129.  
  1130. Suppose I have a Shape class.  Furthermore suppose, there are two subclasses
  1131. of Shape, Square and Circle.  Now if I create a list of Shape objects, is
  1132. there any way to get the subclassed object.  What I really want to do
  1133. is say TheShape->Draw() and have it draw a Square or a Circle depending
  1134. upon which type of shape we are dealing with.  I think what I need is a
  1135. virtual declaration.  However, that is not provided in Think 4.0.5.
  1136. So I guess my real question would be is there any way around this?  Given
  1137. an instance of a Shape is there any way that I can call Circle's Draw() method?
  1138.  
  1139. If this is pure jibberish you may safely disregard it.
  1140. Craig
  1141. 
  1142. 
  1143. Path: ucivax!gateway
  1144. From: sears@netcom.com (Daniel Sears)
  1145. Subject: List Manager example wanted
  1146. Message-ID: <9108142059.AA25942@netcom.netcom.com>
  1147. Newsgroups: fa.think-c
  1148. Lines: 8
  1149. Date: 14 Aug 91 20:59:51 GMT
  1150.  
  1151. Hello,
  1152.  
  1153. Does anyone have any Think C code for using the List Manager in a dialog box?
  1154. Right now I am using a bunch of radio buttons that is getting too long and
  1155. I would like to change this to use the List Manager.  Sample code would be
  1156. appreciated.
  1157.  
  1158. --Dan (sears@netcom.com)
  1159. 
  1160. 
  1161. Path: ucivax!gateway
  1162. From: jDo@sjc.mentorg.com
  1163. Subject: [NEWS] Symantec += Zortech
  1164. Message-ID: <9108142240.AA14430@polaris.mentorg.com>
  1165. Newsgroups: fa.think-c
  1166. Lines: 35
  1167. Date: 14 Aug 91 22:41:01 GMT
  1168.  
  1169. ----------
  1170. Business Wire
  1171. Tuesday, 13 August 1991
  1172. (Reposted without permission)
  1173. ----------
  1174.  
  1175. SYMANTEC CORP. ANNOUNCES ACQUISITION OF ZORTECH ...
  1176.  
  1177. CUPERTINO, CA (AUG. 13) BUSINESS WIRE - Symantec Corp. (NASDAQ:SYMC)
  1178. announced Tuesday that it has acquired Zortech Inc., the Woburn, Mass-based
  1179. developer of cross-platform C++ compilers.
  1180.    Symantec is currently the leading independent developer of Macintosh
  1181. languages  with award winning products including Think C and Think Pascal.
  1182.    Zortech is an innovator in the rapidly emerging market segment for C++
  1183. development environments, which it spearheaded in 1988 with the release of the
  1184. first native code C++ compiler for DOS.
  1185.    Today, Zortech has industrial-strength C++ compilers for DOS, Windows,
  1186. OS/2, UNIX and the Macintosh.  This acquisition will expedite Symantec's
  1187. entrance into the emerging market for industrial-strength, cross-platform C++
  1188. development environments for the corporate developer.
  1189.    This acquisition is a pooling of interest in which Symantec will exchange
  1190. 238,095 shares of its common outstanding stock for the current outstanding
  1191. shares of Zortech stock.
  1192.    Zortech has offices in Massachusetts and London.  The Zortech staff will
  1193. report to Julie Bingham, currently director of Symantec's language and
  1194. integrated products group, located in Bedford, Mass.
  1195.    Symantec Corp., develops, markets and supports a complete line of
  1196. application and system software products for IBM personal computers and
  1197. compatibles, and Apple Macintosh computers.
  1198.    Founded in 1982, the company has offices in the United States, Canada,
  1199. Australia and Europe.  Information on the company and products can be obtained
  1200. by calling 408/253-9600.
  1201.  
  1202. ----------
  1203.  
  1204. 
  1205. 
  1206. Path: ucivax!gateway
  1207. From: phils@chaos.cs.brandeis.edu (Phil Shapiro)
  1208. Subject: getting the subclassed object's method
  1209. Message-ID: <9108142347.AA01476@chaos.cs.brandeis.edu>
  1210. In-Reply-To: Craig's message of 14 Aug 91 18:24:03 GMT <9108141123.aa22830@PARIS.ICS.UCI.EDU>
  1211. Newsgroups: fa.think-c
  1212. Lines: 26
  1213. Date: 14 Aug 91 23:48:00 GMT
  1214.  
  1215.    Suppose I have a Shape class.  Furthermore suppose, there are two
  1216.    subclasses of Shape, Square and Circle.  Now if I create a list of
  1217.    Shape objects, is there any way to get the subclassed object.  What
  1218.    I really want to do is say TheShape->Draw() and have it draw a
  1219.    Square or a Circle depending upon which type of shape we are
  1220.    dealing with.  I think what I need is a virtual declaration.
  1221.    However, that is not provided in Think 4.0.5.  So I guess my real
  1222.    question would be is there any way around this?  Given an instance
  1223.    of a Shape is there any way that I can call Circle's Draw() method?
  1224.  
  1225. In THINK C 4.0, all methods of an object are implicitly virtual.  So,
  1226. the correct function is called when the object's method is dispatched.
  1227. This is traditionally called "object polymorphism".
  1228.  
  1229. In THINK C 5.0, there's a compiler switch that lets you toggle between
  1230. all methods being implicitly virtual, and requiring the virtual
  1231. keyword.  This way, it's easy to port over C 4.0 OOP programs.
  1232.  
  1233. Both versions produce direct calls for virtual monomorphic methods, so
  1234. you don't lose any performance for methods that are never overridden.
  1235.  
  1236.     -phil
  1237. ----
  1238.    Phil Shapiro                           Technical Support Analyst
  1239.    Language Products Group                     Symantec Corporation
  1240.         Internet: phils@chaos.cs.brandeis.edu
  1241. 
  1242. 
  1243. Path: ucivax!gateway
  1244. From: fleabag@athena.mit.edu
  1245. Subject: C++, here we come!!
  1246. Message-ID: <9108150344.AA26284@e40-008-8.MIT.EDU>
  1247. Newsgroups: fa.think-c
  1248. Lines: 12
  1249. Date: 15 Aug 91 03:45:21 GMT
  1250.  
  1251.  
  1252. could it take more than 6 months to come up with a "port"
  1253. of Zortech's compiler??  i mean, it's just a compiler
  1254. compiler (or something like that...),  so making adjustments
  1255. to fit into think's quirks should be moderate, if not
  1256. minimal.
  1257.  
  1258. or, so sayeth one who knoweth not.  but please, please!
  1259. let it come swiftly!!
  1260.  
  1261. :jeff bellsey
  1262.  
  1263. 
  1264. 
  1265. Path: ucivax!gateway
  1266. From: van-bc!vital!bradk@ics.uci.edu (Brad Kollmyer)
  1267. Subject: Re: Think C 5.0 announced
  1268. Message-ID: <01050017.m3ngob@vital.UUCP>
  1269. X-Mailer: uAccess - Mac Release: 1.5
  1270. Newsgroups: fa.think-c
  1271. Reply-To: Brad Kollmyer <vital!bradk@ics.uci.edu>
  1272. Organization: Vital Consulting
  1273. Lines: 9
  1274. Date: 15 Aug 91 05:31:34 GMT
  1275.  
  1276.  
  1277. In Regards to your letter <9108072118.AA06346@bach.convex.com>:
  1278. |I was told to allow "two to four weeks" for delivery.  I was also told
  1279.  
  1280. I placed my order last week, and received my update just yesterday.
  1281. I was quoted a four to six week delivery time.
  1282.  
  1283. Brad.
  1284.  
  1285. 
  1286. 
  1287. Path: ucivax!gateway
  1288. From: udsugar@king.mcs.drexel.edu (David Sugar)
  1289. Subject: Questions??
  1290. Message-ID: <9108152317.AA12409@mcs.drexel.edu>
  1291. Newsgroups: fa.think-c
  1292. Lines: 32
  1293. Date: 15 Aug 91 23:19:51 GMT
  1294.  
  1295.  
  1296.   First off, how do I get on the mailing list to get this group??  I was
  1297. looking around on the FTP site when I noticed the archives and reading
  1298. through one of them I decided that this group would be great for me to get
  1299. on to, but can't figure out how.
  1300.  
  1301.   Secondly, I have a C related question.  I am using Think C, and I am trying
  1302. to read and write from a resource that is in the application that I am working
  1303. on.  So, with ResEdit I made a resource called 'test' and I would like to be
  1304. able to write an integer to this resource.  So, I have variables, data is an
  1305. int, data_ptr is a Ptr, and data_handle is a Handle, to make it easy.  Then
  1306. I assign data 300 but, when I assign *data_ptr=data; then *data_ptr = 44 now,
  1307. that is my biggest problem, because then when I write the data to the
  1308. resource with AddResource it saves it as 44, not 300.  I'm very new to
  1309. programing in C and on the Mac with the tool box calls and all.  I'm sure
  1310. that this is a very simple thing to do.  I eventually want to be able to
  1311. write an entire array to a resource, but figured starting out writing integers
  1312. and building up to the arry would be the best way to approach the problem,
  1313. but that is where I am stuck.
  1314.  
  1315.   I would appreciate any suggestions that you can think of, the first one
  1316. should be the easist..  Anyway, if you could please send responces directly
  1317. to me because I am not, as of this very second, getting the news group sent
  1318. to me.  Thanks..
  1319.  
  1320.   David Sugar
  1321.   udsugar@mcs.drexel.edu
  1322.   udsugar@129.25.7.100
  1323.   udsugar@129.25.10.1
  1324.  
  1325.   Thanks very much..
  1326.  
  1327. 
  1328. 
  1329. Path: ucivax!gateway
  1330. From: FEATS@vtvm1.cc.vt.edu (Steve Greenfield)
  1331. Subject: Think C 5.0
  1332. Message-ID: <9108161115.aa11722@ics.uci.edu>
  1333. Newsgroups: fa.think-c
  1334. Lines: 21
  1335. Date: 16 Aug 91 18:15:48 GMT
  1336.  
  1337. I purchased Symantec's Think C 4.0 in April 1991 from our University
  1338. Bookstore for $80.  As a member of this list I have noticed that the upgrade
  1339. to 5.0 has been announced.  I called Symantec about the upgrade and they
  1340. told me that it would cost me $89 plus $5 shipping for the upgrade to 5.0.
  1341. I can't see paying $14 more for the upgrade than I did for the original
  1342. release!
  1343.  
  1344. Is there anyway to get a University discount for the upgrade?  If I cannot
  1345. get the upgrade to 5.0 due to the price, how do I go about upgrading my
  1346. 4.0 release to 4.2 or higher release thru the network/ftp?  Where can I
  1347. get the upgrade code and does the file you GET have instructions on how
  1348. to apply the upgrade?  Can Think C 4.0 run under System 7?
  1349.  
  1350. Thanks in advance!!!
  1351.  
  1352. Stephen L. Greenfield
  1353. Virginia Polytechnic Institute
  1354. Blacksburg, Virginia
  1355.  
  1356. Bitnet:    FEATS@VTVM1
  1357. Internet:  feats@vtvm1.cc.vt.edu
  1358. 
  1359. 
  1360. Path: ucivax!gateway
  1361. From: udsugar@king.mcs.drexel.edu (David Sugar)
  1362. Subject: Thanks/stuff
  1363. Message-ID: <9108162047.AA19427@mcs.drexel.edu>
  1364. Newsgroups: fa.think-c
  1365. Lines: 14
  1366. Date: 16 Aug 91 20:49:32 GMT
  1367.  
  1368.  
  1369.   Thanks to everyone who replied to my question, I think that I have figured it
  1370. out with our help.  I'll post a follow up when I get it working telling anyone
  1371. else with simular problems how it works.
  1372.  
  1373.   As for the person wh bought Think C 4.0, I can't remeber your name off hand,
  1374. but, with the updaters to Think C 4.0.5, which I'm pretty sure you can ftp
  1375. form ics.uci.edu and from sumex it runs fine on System 7.0, that's what I
  1376. am running right now.  As for getting Think C 5.0, I think you should try
  1377. getting the update through your school, but I don't know if they will give
  1378. it to you..
  1379.  
  1380.   David Sugar
  1381.  
  1382. 
  1383. 
  1384. Path: ucivax!gateway
  1385. From: julian@riacs.edu
  1386. Subject: Symantec: real customer service
  1387. Message-ID: <9213.682388282@miranda.riacs.edu>
  1388. Newsgroups: fa.think-c
  1389. Lines: 5
  1390. Date: 17 Aug 91 00:18:25 GMT
  1391.  
  1392. Talk about service! Wednesday I called in my order for the TC 5.0
  1393. upgrade.  The clerk told me that orders were generally arriving in four
  1394. to six weeks, but since I'm in California to expect it in ten days. It
  1395. arrived Thursday.  (The yellowjacket nest in my bedroom wall kept me
  1396. from posting earlier, but that's another story.)
  1397. 
  1398. 
  1399. Path: ucivax!gateway
  1400. From: fleabag@athena.mit.edu
  1401. Subject: (none)
  1402. Message-ID: <9108170224.AA13015@e40-008-6.MIT.EDU>
  1403. Newsgroups: fa.think-c
  1404. Lines: 36
  1405. Date: 17 Aug 91 02:24:30 GMT
  1406.  
  1407.  
  1408. help!
  1409.  
  1410. i'm having a very weird problem, the likes of which i haven't
  1411. seen before...
  1412.  
  1413. after a certain user input error i call gError->PostAlert().
  1414. if the user does this a few times in a row, the result is no
  1415. longer the correct alert box and its string, but a seemingly
  1416. random occurrence, as follows:
  1417.  
  1418.        - 90%: no dialog box appears, yet the system acts as
  1419.               if one had.  that is, the menus dim, all clicks
  1420.               cause a beep, and the "show balloons" indicates
  1421.               that windows are inactive because there is a
  1422.               dialog box on screen.  yet no new windows have
  1423.               appeared.
  1424.  
  1425.        - 5%:  an odd-shaped dialog box does appear.  it may
  1426.               be either too wide (for example: starting at the
  1427.               left edge of the screen and going off way past
  1428.               the right edge), or too narrow, or too tall.
  1429.  
  1430.        - 5%:  major system error, as in "bad F-line instruction
  1431.               in Think C Debugger", with restart the only option.
  1432.  
  1433. any clues?  any place i might BEGIN to look for a culprit?  note
  1434. that usually i get the dialog box correctly, at least the first
  1435. time i cause the user-input error. when i repeat the action,
  1436. weirdness only.
  1437.  
  1438. thanks,
  1439. :jeff bellsey
  1440.  
  1441. fleabag@athena.mit.edu
  1442.  
  1443. 
  1444. 
  1445. Path: ucivax!gateway
  1446. From: rudman@mondo.engin.umich.edu
  1447. Subject: Re: Symantec: real customer service
  1448. Message-ID: <9108170355.AA13645@mondo.engin.umich.edu>
  1449. Newsgroups: fa.think-c
  1450. Lines: 26
  1451. Date: 17 Aug 91 02:55:55 GMT
  1452.  
  1453. >
  1454. >Talk about service! Wednesday I called in my order for the TC 5.0
  1455. >upgrade.  The clerk told me that orders were generally arriving in four
  1456. >to six weeks, but since I'm in California to expect it in ten days. It
  1457. >arrived Thursday.  (The yellowjacket nest in my bedroom wall kept me
  1458. >from posting earlier, but that's another story.)
  1459.  
  1460. If anyone finds out about educational discounts, PLEASE post it to this
  1461. discussion. Although I will be able to USE it for free (the perks of
  1462. working for the University), I won't be able to port it home to play with,
  1463. and so I'd like to upgrade it (especially for the new manuals - anyone know
  1464. if they're any good? Better than the 4.0 ones, I hope; those were reeeaaaly
  1465. ugly).
  1466.  
  1467. And yellowjackets are NOTHING... I just got home to my apartment from a
  1468. nice round of nine-ball, walked into the room and was attacked by an
  1469. extremely frightened BAT. Now, no doors and windows were open...........
  1470. Hmmm!!
  1471.  
  1472.  
  1473.  
  1474. //Dan
  1475. The University of Michigan
  1476. Computer-Aided Engineering Network
  1477. Macintosh Systems Administration
  1478.  
  1479. 
  1480. 
  1481. Path: ucivax!gateway
  1482. From: paulr@planet8. (Paul Raulerson)
  1483. Subject: Symantec Customer Service...
  1484. Message-ID: <9108170532.AA29257@planet8.sp.unisys.com>
  1485. Newsgroups: fa.think-c
  1486. Lines: 27
  1487. Date: 17 Aug 91 05:35:56 GMT
  1488.  
  1489.  
  1490. >
  1491. >Talk about service! Wednesday I called in my order for the TC 5.0
  1492. >upgrade.  The clerk told me that orders were generally arriving in four
  1493. >to six weeks, but since I'm in California to expect it in ten days. It
  1494. >arrived Thursday.  (The yellowjacket nest in my bedroom wall kept me
  1495. >from posting earlier, but that's another story.)
  1496.  
  1497.  
  1498. OTOP, I oredred my upgrade a week ago last Tuesday, paid extra to have it
  1499. shipped to reach me within 7 days. It arrived last Tuesday, exactly
  1500. one week after ordered, but the upgrade package had no disks in it. (*sigh*)
  1501.  
  1502. After waiting for 37.5 minutes on Symantecs 800 line, I got a nice
  1503. receptionist who asked me for my name and number. Since it was getting late,
  1504. I persisted till Igot a customer service rep, who set it up to get me the disks.
  1505. Of course, I even offered to pay *more* to get the dratted things this week.
  1506.  
  1507. It is early Saturday morning, and I still ain't got no disks. Seems they could
  1508. have at least sent the pesky disks out as 2nd day air. (The upgrade pack with
  1509. manuals but no disks came that way... )
  1510.  
  1511. Symantec is usually one of the very best at customer service, but I feel
  1512. kinda jerked around with this one.  Aw well, they *always* have a rush at
  1513. upgrade time. Now, if I ever see my Think-Pascal upgrade. <grin>
  1514.  
  1515. -Paul
  1516. 
  1517. 
  1518. Path: ucivax!gateway
  1519. From: headley@macc.wisc.edu
  1520. Subject: Is it safe to increase the FOPEN_MAX limit ??
  1521. Message-ID: <21081717255039@vms.macc.wisc.edu>
  1522. Newsgroups: fa.think-c
  1523. Lines: 26
  1524. Date: 17 Aug 91 22:27:02 GMT
  1525. Bcc: headley@macc.wisc.edu
  1526.  
  1527. Hi all:
  1528.  
  1529. I would like to increase the FOPEN_MAX limit from 15 to 20.  As far as I
  1530. can tell there should be no problems.  The only thing that I can see that
  1531. is materially affected by a change in FOPEN_MAX is the allocation :-
  1532.  
  1533. FILE __file[FOPEN_MAX]                          ( iomisc.c )
  1534.  
  1535. The datatype FILE is only 38 bytes, so I can't see that memory concerns
  1536. should be a big deal.  The File Manager looks like it dynamic allocates
  1537. what it needs ( I can't find a fixed limit for the max files anywhere).
  1538.  
  1539. If anyone sees or knows that I'm missing somthing please let me know.
  1540.  
  1541. Thanks in advance.
  1542.  
  1543. George
  1544.  
  1545. _______________________________________________________________________
  1546.  
  1547. George Headley                        Office:  (608) 262-7240
  1548. Technical Support Consultant
  1549. Academic Computing Center             Internet: headley@macc.wisc.edu
  1550. University of Wisconsin - Madison     Bitnet:   headley@wiscmacc.bitnet
  1551.  
  1552.  
  1553. 
  1554. 
  1555. Path: ucivax!gateway
  1556. From: rudman@mondo.engin.umich.edu (Daniel Edward Rudman)
  1557. Subject: Electronic Formulation Routines - WANTED!
  1558. Message-ID: <9108180836.AA14691@mondo.engin.umich.edu>
  1559. Newsgroups: fa.think-c
  1560. Lines: 15
  1561. Date: 18 Aug 91 07:36:50 GMT
  1562.  
  1563.  
  1564. Does anyone here have a library of electronic/mathematic routines, such as
  1565. FFTs, etc.? Also, any routines/algorithms for wire-routing and component
  1566. placement would be REALLY helpful, too!
  1567.  
  1568. Graphical elements of the above kind are highly desired as well. Anyone with
  1569. experience programming this kind of stuff, PLEASE tell me what kind of things
  1570. to look out for and what to expect... I'm not going to try to make another
  1571. Mentor Graphics, but I'd sure like to have SOMETHING a little more worthy than
  1572. Digi-blah... ;)
  1573.  
  1574. Thanks..
  1575.  
  1576. //Dan
  1577. Aspiring Electrical Engineer wannabe
  1578. 
  1579. 
  1580. Path: ucivax!gateway
  1581. From: nagel@ics.uci.edu (Mark Nagel)
  1582. Subject: ARCHIVE: Picture Rotation
  1583. Message-ID: <10344.682561348@ics.uci.edu>
  1584. Newsgroups: fa.think-c
  1585. Reply-To: nagel@ics.uci.edu
  1586. Lines: 25
  1587. Date: 19 Aug 91 00:22:37 GMT
  1588. X-Phone: (714) 753-0414 x115
  1589.  
  1590. Date: Wed, 14 Aug 91 07:38:17 EDT
  1591. From: "Manuel A. Perez" <perez@itd.nrl.navy.MIL>
  1592. Subject: Picture Rotation
  1593.  
  1594. What follows is some code that will do 90 degree rotation
  1595. of a bitmap.  The code was originally written by Bob Denny
  1596. in MacTutor.  I typed it in, and made a few minor changes
  1597. to make it work with THINK C and the current OS
  1598. (unfortunately still 6.0.7).  I am sending it out because
  1599. another member asked for such code yesterday.
  1600.  
  1601. Good luck,
  1602.  
  1603.  
  1604. Manuel A. Perez
  1605.  
  1606. Disclaimer: while my email address says that I work for
  1607. the goverment, all of the work for this code was done
  1608. in my home machine.  So, there is no association whatsoever
  1609. between military purposes and the code included below. Also
  1610. It should not be taken as representative of the opinion of
  1611. my employer, but then how many times have you seen the President
  1612. expressing his opinions in C.
  1613.  
  1614. [saved as: /mac/think-c/examples/rotation.shar; 7K]
  1615. 
  1616. 
  1617. Path: ucivax!gateway
  1618. From: k044477@hobbes.kzoo.edu (Jamie McCarthy)
  1619. Subject: Using Dispose()d objects' methods
  1620. Message-ID: <9108190048.AA04502@hobbes.kzoo.edu>
  1621. X-Mailer: ELM [version 2.3 PL11]
  1622. Newsgroups: fa.think-c
  1623. Lines: 17
  1624. Date: 19 Aug 91 00:47:48 GMT
  1625.  
  1626. For reasons I won't go into, my project will be a lot simpler if I can
  1627. do something which I think is just this side of dangerous.  I want to
  1628. write a method for an object which will call Dispose() for that object,
  1629. and then do a few things more before returning, mostly calling other
  1630. objects' methods.  I know it's bad to access any of the object's
  1631. variables.  I figure I can make copies of them all on the stack (ie
  1632. local vars) and keep using the ones I can't do without, though.  I
  1633. realize that I need to be sure not to call any methods for the disposed
  1634. object, including inherited methods.
  1635.  
  1636. Will I crash and burn if I try this?  Or can I scrape by if I'm
  1637. careful?
  1638. --
  1639.  Jamie McCarthy                    k044477@kzoo.edu
  1640.  Disclaimer:  it's my responsibility iff they're my words.
  1641.  The bear eagerly wolfs down your food, after which he seems to calm
  1642.  down considerably and even becomes rather friendly.
  1643. 
  1644. 
  1645. Path: ucivax!gateway
  1646. From: ewright@bach.convex.com ("Edward V. Wright")
  1647. Subject: Re:  Symantec Customer Service...
  1648. Message-ID: <9108191457.AA25235@bach.convex.com>
  1649. Newsgroups: fa.think-c
  1650. Lines: 7
  1651. Date: 19 Aug 91 14:57:53 GMT
  1652.  
  1653. I received both the C and Pascal upgrades in Friday.  (Turn-around time
  1654. of about a week, even though they told me to expect 3-4 weeks.  I did
  1655. not pay extra for special service and was not asked about it.)  Both
  1656. packages have the disks.  I also received notification of both upgrades
  1657. by mail, within a few days after they were announced.  I think that, for
  1658. the most part, Symantec is doing an excellent job with the upgrades, but that
  1659. doesn't rule out a few snafus.
  1660. 
  1661. 
  1662. Path: ucivax!gateway
  1663. From: ar4@sage.cc.purdue.edu (Piper Keairnes)
  1664. Subject: ThinkC 5.0 educational prices
  1665. Message-ID: <9108192213.AA27175@sage.cc.purdue.edu>
  1666. Newsgroups: fa.think-c
  1667. Lines: 7
  1668. Date: 19 Aug 91 22:14:00 GMT
  1669.  
  1670. The educational price for ThinkC 5.0 here at Purdue is $89.29 plus tax. Just
  1671. thought I'd let you all know.
  1672.  
  1673. _____
  1674. Piper Keairnes - Computer Science
  1675. INTERNET: ar4@sage.cc.purdue.edu
  1676.   BITNET: xar4@purccvm.bitnet
  1677. 
  1678. 
  1679. Path: ucivax!gateway
  1680. From: fleabag@athena.mit.edu
  1681. Subject: thanks,
  1682. Message-ID: <9108201648.AA01306@m4-167-8.MIT.EDU>
  1683. Newsgroups: fa.think-c
  1684. Lines: 16
  1685. Date: 20 Aug 91 16:48:33 GMT
  1686.  
  1687.  
  1688. hi all,
  1689.  
  1690. thanks to everyone who tried their darndest to figure out
  1691. what was wrong with my alerts.  it turns out (after much
  1692. too much debugging) that the code was 100% solid, but the
  1693. @!*%&^ resource map wasn't.  so after copying the resources
  1694. themselves into another file, all was well.
  1695.  
  1696. sorry to have wasted your time for such a trivial problem...
  1697.  
  1698. so here's another one!  what's the best way to blindly copy
  1699. all the resources from one file to another?
  1700.  
  1701. :jeff bellsey
  1702. fleabag@athena.mit.edu
  1703. 
  1704. 
  1705. Path: ucivax!gateway
  1706. From: udsugar@king.mcs.drexel.edu (David Sugar)
  1707. Subject: GrafPort Question
  1708. Message-ID: <9108201831.AA02121@mcs.drexel.edu>
  1709. Newsgroups: fa.think-c
  1710. Lines: 56
  1711. Date: 20 Aug 91 18:33:57 GMT
  1712.  
  1713.  
  1714.   I'm wokring on a function that is supposed to open an offscreen GrafPort,
  1715. then do some drawing on it, the use copybits to copy the off screen GrafPort
  1716. into a window.  The window and the GrafPort are the same size, and I think
  1717. that I have set everything up correctly.  I will attach the function and if
  1718. someone see's a problme could you mail me??  What the problem is, is that
  1719. when I do a copybits the window get's filles with 'garbage' basicly.  In
  1720. the function attachect it is just supposed to draw an 'X' in the window and
  1721. then copy it to the screen, but there is a lot of other stuff in the window
  1722. when it is copied.  Make sence??  I'm sure it's just something that I'm
  1723. forgetting to do, but the problem is that I'm not sure what that is..   Here
  1724. is what I have done...
  1725. Drawing2()
  1726. {
  1727.     DialogPtr        Dialog;
  1728.     int                XWidth,YWidth;
  1729.     long            top,bottom,left,right,Mem,RowLength;
  1730.     GrafPtr            Off;
  1731.  
  1732.     top=left=0;
  1733.     bottom=right=256;
  1734.     XWidth=right-left;
  1735.     YWidth=bottom-top;
  1736.     RowLength=XWidth/8;
  1737.     Mem=RowLength*YWidth;
  1738.  
  1739.     Dialog=GetNewDialog(Dilg,0L,-1L);
  1740.     ShowWindow(Dialog);
  1741.     Off=(GrafPtr) NewPtr(sizeof(*Dialog));
  1742.     OpenPort(Off);
  1743.  
  1744.     Off->portBits.rowBytes=RowLength;
  1745.     Off->portBits.baseAddr=NewPtr(Mem);
  1746.     SetRect(&Off->portBits.bounds,0,0,XWidth,YWidth);
  1747.     Off->portRect=Off->portBits.bounds;
  1748.     SetRectRgn(Off->visRgn,0,0,XWidth,YWidth);
  1749.     SetRectRgn(Off->clipRgn,0,0,XWidth,YWidth);
  1750.  
  1751.     BackPat(black);
  1752.     CopyBits(&Off->portBits,&Dialog->portBits,&Off->portRect,&Dialog->portRect,srcCopy,NULL);
  1753.     ForeColor(redColor);
  1754.     MoveTo(0,0);
  1755.     LineTo(256,256);
  1756.     MoveTo(0,256);
  1757.     LineTo(256,0);
  1758.     CopyBits(&Off->portBits,&Dialog->portBits,&Off->portRect,&Dialog->portRect,srcCopy,NULL);
  1759. }
  1760.  
  1761. Ok.  I think that everything is pretty straight forward in the function. I
  1762. have set up the normal stuff for that Mac before this so that's no problem
  1763. it compiles no problem, but like I said, when I do the
  1764. CopyBits functions it copies a lot of extra garbage that shouldn't be there.
  1765.  
  1766. David Sugar
  1767. udsugar@mcs.drexel.edu
  1768. udsugar@129.25.7.100
  1769. 
  1770. 
  1771. Path: ucivax!gateway
  1772. From: phils@chaos.cs.brandeis.edu (Phil Shapiro)
  1773. Subject: thanks,
  1774. Message-ID: <9108210033.AA05513@chaos.cs.brandeis.edu>
  1775. In-Reply-To: fleabag@athena.mit.edu's message of 20 Aug 91 16:48:33 GMT <9108201648.AA01306@m4-167-8.MIT.EDU>
  1776. Newsgroups: fa.think-c
  1777. Lines: 19
  1778. Date: 21 Aug 91 00:33:45 GMT
  1779.  
  1780. Jeff wrote:
  1781.    what's the best way to blindly copy all the resources from one file
  1782.    to another?
  1783.  
  1784. There's an example of an XCMD that does this in Mactutor, probably in
  1785. the last year.  The basic idea is to open the source and destination
  1786. files using HOpenRF (after creating the destination using Create), and
  1787. FSRead and FSWrite until you're done.  If you have the THINK
  1788. Reference, there's an example of a program that copies both forks of a
  1789. file in the entry for OpenRF.
  1790.  
  1791. Of course, if you have a trashed resource map, then you're out of
  1792. luck :-).
  1793.  
  1794.     -phil
  1795. ----
  1796.    Phil Shapiro                           Technical Support Analyst
  1797.    Language Products Group                     Symantec Corporation
  1798.         Internet: phils@chaos.cs.brandeis.edu
  1799. 
  1800. 
  1801. Path: ucivax!gateway
  1802. From: emmayche@dhw68k.cts.com (Mark Hartman)
  1803. Subject: Re:  Questions??
  1804. Message-ID: <9108211525.AA00329@dhw68k.cts.com>
  1805. Newsgroups: fa.think-c
  1806. Lines: 28
  1807. Date: 21 Aug 91 17:22:44 GMT
  1808.  
  1809. David Sugar (udsugar@mcs.drexel.edu) writes:
  1810.  
  1811. > I am using Think C, and I am trying to read and write from a resource
  1812. > that is in the application that I am working on. So, with ResEdit I
  1813. > made a resource called 'test' and I would like to be able to write an
  1814. > integer to this resource. So, I have variables, data is an int,
  1815. > data_ptr is a Ptr, and data_handle is a Handle, to make it easy. Then
  1816. > I assign data 300 but, when I assign *data_ptr=data; then *data_ptr =
  1817. > 44 now, that is my biggest problem, because then when I write the
  1818. > data to the resource with AddResource it saves it as 44, not 300.
  1819.  
  1820. One of the conceptual problems that most people have with Ptrs and Handles
  1821. is that they are *only* pointers to areas of information, but do not include
  1822. the implication that the area they point to actually exists!  In your example
  1823. above, data_ptr was probably some random value (remember, a Ptr is simply
  1824. a longword plucked out of memory and "blessed" to be a Ptr - it's not changed
  1825. automatically), so when you said "*data_ptr=data", some random memory loc
  1826. was overwritten with 300.  Further operations of your program or the Mac's
  1827. operating system changed the memory location to what you see as 44.
  1828.  
  1829. The simple declaration of a Ptr or a Handle does not allocate memory.  You
  1830. must first use the NewPtr and/or NewHandle calls to do so.  See Inside Mac
  1831. volume 2, "The Memory Manager" chapter.
  1832.  
  1833. Much good luck in your endeavors.
  1834.  
  1835. Mark Hartman
  1836. emmayche@dhw68k.cts.com
  1837. 
  1838. 
  1839. Path: ucivax!gateway
  1840. From: pmiller@topaz.bmr.gov.au (Peter Miller)
  1841. Subject: Re: Questions??
  1842. X-Face: u\%{\QY_5[S37dfQ#c*#""=K,KGq>4wGryNm+=TT]1jOGap~>j*-sb9d|ll.sHIJu&n{:T`
  1843.  cP|e(B?o,W%l_)o5pW,"MVie?sw{hZ@7E^o`C:wz){1p!u%O<N#lcPP]b|f:2,-mNKt{Ue(_7e"ok@
  1844.  b".~TQ#YGrlY[r!:5q[/"O&Bn4:3mwuUFt>Qc]KTq}A")Jk,[
  1845. Message-ID: <9108212316.AA22147@topaz.bmr.gov.au>
  1846. In-Reply-To: Your message of 21 Aug 91 17:22:44 +0000.
  1847.              <9108211525.AA00329@dhw68k.cts.com>
  1848. Newsgroups: fa.think-c
  1849. Lines: 36
  1850. Date: 21 Aug 91 23:14:37 GMT
  1851.  
  1852.  
  1853. David Sugar (udsugar@mcs.drexel.edu) writes:
  1854.  
  1855. > I am using Think C, and I am trying to read and write from a resource
  1856. > that is in the application that I am working on. So, with ResEdit I
  1857. > made a resource called 'test' and I would like to be able to write an
  1858. > integer to this resource. So, I have variables, data is an int,
  1859. > data_ptr is a Ptr, and data_handle is a Handle, to make it easy. Then
  1860. > I assign data 300 but, when I assign *data_ptr=data; then *data_ptr =
  1861. > 44 now, that is my biggest problem, because then when I write the
  1862. > data to the resource with AddResource it saves it as 44, not 300.
  1863.  
  1864.  
  1865. Ahem.  Has anyone noticed that 300 % 256 == 44?
  1866.  
  1867. If you look in MacTypes.h you will notice
  1868.     typedef char *Ptr;
  1869.  
  1870. Storing 300 into a byte will obviously lose data!
  1871. If you want to store a short, cast the pointer
  1872.     *(short *)data_ptr = 300;
  1873.  
  1874. @begin(WishMode)
  1875. Personally I think the typedef should should read "typedef void *Ptr;" so
  1876. that dereferencing an un-cast Ptr will always fail.
  1877. This way many potential problems are detected at compile time,
  1878. and also many system calls which take a Ptr argument will cease
  1879. to complain when I have "check pointer types" enabled,
  1880. (and doesn't everyone?)
  1881. @end(WishMode)
  1882.  
  1883. Regards
  1884. Peter Miller    UUCP    uunet!munnari!bmr.gov.au!pmiller
  1885. /\/\*        CSNET    pmiller@bmr.gov.au
  1886. Disclaimer:  The views expressed here are personal and do not necessarily
  1887.     reflect the view of my employer or the views or my colleagues.
  1888. 
  1889. 
  1890. Path: ucivax!gateway
  1891. From: phils@chaos.cs.brandeis.edu (Phil Shapiro)
  1892. Subject: Is it safe to increase the FOPEN_MAX limit ??
  1893. Message-ID: <9108221610.AA27535@chaos.cs.brandeis.edu>
  1894. In-Reply-To: headley@macc.wisc.edu's message of 17 Aug 91 22:27:02 GMT <21081717255039@vms.macc.wisc.edu>
  1895. Newsgroups: fa.think-c
  1896. Lines: 27
  1897. Date: 22 Aug 91 16:11:12 GMT
  1898.  
  1899.    I would like to increase the FOPEN_MAX limit from 15 to 20.  As far
  1900.    as I can tell there should be no problems.  The only thing that I
  1901.    can see that is materially affected by a change in FOPEN_MAX is the
  1902.    allocation :-
  1903.  
  1904.    FILE __file[FOPEN_MAX] ( iomisc.c )
  1905.  
  1906.    The datatype FILE is only 38 bytes, so I can't see that memory
  1907.    concerns should be a big deal.  The File Manager looks like it
  1908.    dynamic allocates what it needs ( I can't find a fixed limit for
  1909.    the max files anywhere).
  1910.  
  1911. Actualy, the File Manager has a fixed limit based on the length of the
  1912. FCB buffer.  Unlike the VCB queue, this buffer is allocated at boot
  1913. time, and is of fixed length.  I haven't found any doc to support
  1914. this, but I've heard that the System 7 File Manager will dynamically
  1915. reallocate the FCB buffer if more blocks are needed.  For info about
  1916. the FCB buffer (and it's affected by the boot blocks), see IM VI-178.
  1917.  
  1918. There are a couple shareware utilities which will let you change your
  1919. boot blocks to support more open files.  ("Bootman" is one.)
  1920.  
  1921.     -phil
  1922. ----
  1923.    Phil Shapiro                           Technical Support Analyst
  1924.    Language Products Group                     Symantec Corporation
  1925.         Internet: phils@chaos.cs.brandeis.edu
  1926. 
  1927. 
  1928. Path: ucivax!gateway
  1929. From: infoserv!apple!well!wdh@zardoz.uucp (Bill Hofmann)
  1930. Subject: oConv barfs on UFailure.a.o
  1931. Message-ID: <9108191642.AA27924@well.sf.ca.us>
  1932. Newsgroups: fa.think-c
  1933. Lines: 9
  1934. Date: 23 Aug 91 00:08:50 GMT
  1935.  
  1936. with message "Can't convert this file (10@684)".  This is kinda aggravating,
  1937. I just upgraded to THINK 5, and was hoping to be able to switch between
  1938. THINK and MPW easily.  What does this error mean, and is there a workaround?
  1939. I don't want to have to hand-code my own UFailure.a.
  1940.  
  1941. I must say that I'm quite happy with what's worked so far of THINK 5.  But
  1942. until I can run my project, ...
  1943.  
  1944. -Bill Hofmann
  1945. 
  1946. 
  1947. Path: ucivax!gateway
  1948. From: dedreb@arco.com
  1949. Subject: Hot Key Source Code
  1950. Message-ID: <9108231811.AA14536@Arco.COM>
  1951. Newsgroups: fa.think-c
  1952. Lines: 11
  1953. Date: 23 Aug 91 18:12:19 GMT
  1954.  
  1955. I'd like to implement a hot key into an application I am writing, but this
  1956. is new territory for me.  I hate FKEYs, and I'm sure there must be a better
  1957. approach, anyway.  I'm guessing I will need to write an INIT code resource.
  1958.  Suggestions anyone?  Sample source code would be great, but I'll take
  1959. anything.  Thanks in advance,
  1960.  
  1961.  
  1962. -------------------------------------
  1963. - Richard Beecher (dedreb@arco.com) -
  1964. --------------------------------------
  1965.  
  1966. 
  1967. 
  1968. Path: ucivax!gateway
  1969. From: rsfinn@concerto.lcs.mit.edu ("Russell S. Finn")
  1970. Subject: Re: oConv barfs on UFailure.a.o
  1971. Message-ID: <9108240436.AA20112@concerto.lcs.mit.edu>
  1972. In-Reply-To: Your message of "23 Aug 91 00:08:50 GMT."
  1973.              <9108191642.AA27924@well.sf.ca.us>
  1974. Newsgroups: fa.think-c
  1975. Lines: 11
  1976. X-Mts: smtp
  1977. Date: 24 Aug 91 04:36:46 GMT
  1978.  
  1979. > I don't want to have to hand-code my own UFailure.a.
  1980.  
  1981. Did you look at the file "Exceptions.c", in the TCL Library folder?
  1982. It implements a very MacApp-like (*) exception handling mechanism,
  1983. with some pretty cool C++-like (*) macros to hide the complexity.
  1984.  
  1985. (*) Disclaimer:  I haven't actually used either MacApp or C++, but I
  1986. read a lot of manuals.
  1987.  
  1988. -- Russell S. Finn
  1989. rsfinn@lcs.mit.edu
  1990. 
  1991. 
  1992. Path: ucivax!gateway
  1993. From: k044477@hobbes.kzoo.edu ("Jamie R. McCarthy")
  1994. Subject: Writing inline functions
  1995. Message-ID: <9108250413.AA08459@hobbes.kzoo.edu>
  1996. X-Mailer: ELM [version 2.3 PL11]
  1997. Newsgroups: fa.think-c
  1998. Lines: 20
  1999. Date: 25 Aug 91 04:12:39 GMT
  2000.  
  2001. Let me see if I understand page 125 of the version 4 user's manual.  I
  2002. have a few classes which have small methods that simply return a
  2003. constant.  Can I replace:
  2004.  
  2005. short CShowPane::getBorderWidth(void)
  2006. {
  2007.     return 1;
  2008. }
  2009.  
  2010. with something like:
  2011.  
  2012. short CShowPane::getBorderWidth(void) = { asm { move.w #0001,-(SP) } }
  2013.  
  2014. ?  Or (1) does it only work with functions not methods, or (2) is it
  2015. not meant to work this way at all?
  2016. --
  2017.  Jamie McCarthy                    k044477@kzoo.edu
  2018.  Disclaimer:  it's my responsibility iff they're my words.
  2019.  Alle diese Gleichnisse wollen eigentlich nur sagen, dass das Unfassbare
  2020.  unfassbar ist, und das haben wir gewusst.  -- Franz Kafka
  2021. 
  2022. 
  2023. Path: ucivax!gateway
  2024. From: udsugar@king.mcs.drexel.edu (David Sugar)
  2025. Subject: Thanks
  2026. Message-ID: <9108260057.AA08414@mcs.drexel.edu>
  2027. Newsgroups: fa.think-c
  2028. Lines: 21
  2029. Date: 26 Aug 91 01:00:29 GMT
  2030.  
  2031.  
  2032.   First off, I would like to thank everyone who replied to my GrafPort question,
  2033. my problem was that I wasn't erasing the off screen port by calling
  2034. EraseRect(&Off->portRect);.  That solved my problem and it works fine now.
  2035.   I've been working on code which I would like to use either CGrafPort's or
  2036. an off screen graphic world.  I've been hacking around with both and havn't
  2037. gotten very far.  Does anyone have any opinions on which would be better for
  2038. doing fairly simple color aniamtion.  Basicly all I want to do is draw and
  2039. place pics on a off screen port and then use a copy bits to put it onto the
  2040. screen.  Also, does anyone know where I can get some good source for either
  2041. using CGrafPort's or a Graphics world.  And is a CGrafPort much different than
  2042. just a plain GrafPort.  So far I have sorta gotten it set up, but what it
  2043. does is when I open the port is opens it on the screen, which seems wierd to
  2044. me, but it's probabily something I'm doing wrong..
  2045.   I really do appreciate all the responces that I get from my questions.  I
  2046. am really learning a lot from reading the responces and others peole's questions
  2047. and hacking around in Think-C..  Thanks
  2048.  
  2049. David Sugar
  2050. udsugar@129.25.7.100
  2051.  
  2052. 
  2053. 
  2054. Path: ucivax!gateway
  2055. From: ephraim@think.com (Ephraim Vishniac)
  2056. Subject: freqDurationCmd synonym for noteCmd?
  2057. Message-ID: <9108261519.AA14704@leander.think.com>
  2058. Newsgroups: fa.think-c
  2059. Lines: 5
  2060. Date: 26 Aug 91 15:19:36 GMT
  2061.  
  2062.  
  2063. In Think C 5.0, <sound.h> defines freqDurationCmd = 40, but
  2064. doesn't define noteCmd. I can't find freqDurationCmd in SpinSide
  2065. Mac, but it does give the value of noteCmd as 40. Is there some
  2066. naming skew here?
  2067. 
  2068. 
  2069. Path: ucivax!gateway
  2070. From: ephraim@think.com (Ephraim Vishniac)
  2071. Subject: Various Think C 5.0 oddities
  2072. Message-ID: <9108261853.AA15442@leander.think.com>
  2073. Newsgroups: fa.think-c
  2074. Lines: 40
  2075. Date: 26 Aug 91 18:53:25 GMT
  2076.  
  2077.  
  2078. Here are various oddities I've discovered in porting John Norstad's Sample
  2079. application from MPW to Think C 5.0. When I say "x should be y" in the
  2080. following list, my authority is the version of SpinSide Mac found on
  2081. "Desperately Seeking Seven." I don't have the ANSI C spec, so I'll avoid
  2082. making any definite claims on compliance issues.
  2083.  
  2084. In <Sound.h>, noteCmd isn't defined but should be = 40.
  2085.  
  2086. In a list of enumerated items, Think C complains of a syntax error if the
  2087. last item has a trailing comma. MPW doesn't complain. I don't know if ANSI
  2088. addresses this, but it's really a handy thing.
  2089.  
  2090. Think C complains of a syntax error if the closing brace of a function is
  2091. followed by a semicolon. MPW doesn't complain. Since certain kinds of
  2092. statements (such as declarations) are allowed outside functions, why not
  2093. allow a null statement?
  2094.  
  2095. In <Traps.h>, UnMountVol should be UnmountVol.
  2096.  
  2097. In <Notification.h>, nmIcon should be nmSIcon.
  2098.  
  2099. Inside Mac is inconsistent about hFileInfo and hfileInfo. MPW goes one way,
  2100. TC goes the other. It would be nice if Think C allowed either.
  2101.  
  2102. Think C considers arrayName and &arrayName to have different types. MPW
  2103. doesn't complain. I wouldn't care, myself, but John occasionally writes the
  2104. latter.
  2105.  
  2106. Think C refuses to cast lvalues. I always thought this was conventional C.
  2107. MPW allows it.
  2108.  
  2109. Cosmetic oversight: The compilation window should list files done and files
  2110. to go, since very few people have a good idea how many lines they're
  2111. compiling.
  2112.  
  2113. Many, many cosmetic oversights: I don't believe the User's Manual was ever
  2114. proofread by a native speaker of English (graduates of engineering schools
  2115. don't count). There are many instances of words missing or transposed in
  2116. the running text.
  2117. 
  2118. 
  2119. Path: ucivax!gateway
  2120. From: ephraim@think.com (Ephraim Vishniac)
  2121. Subject: Re: Various Think C 5.0 oddities
  2122. Message-ID: <9108262055.AA16033@leander.think.com>
  2123. In-Reply-To: Your message of "Mon, 26 Aug 91 15:43:48 CDT."
  2124.              <9108262043.AA23459@magnum.convex.com>
  2125. Newsgroups: fa.think-c
  2126. Lines: 45
  2127. Date: 26 Aug 91 20:55:47 GMT
  2128.  
  2129.  
  2130. Not in reply to Russ' message, but following up my original, I'm told
  2131. that all of the discrepancies with Inside Mac that I complained about
  2132. are actually consistent with the latest MPW headers. Strange, but true.
  2133.  
  2134. Also, I've noticed that there are some all-lower-case routines
  2135. prototyped in <Resources.h> (addresource, for example) that appear to
  2136. be analogous to the mixed-case routines (e.g., AddResource) but use C
  2137. strings. Are these functions actually supplied in any of the libraries
  2138. or should I implement them myself using the supplied prototypes?
  2139.  
  2140.    Date: Mon, 26 Aug 91 15:43:48 -0500
  2141.    From: russ@magnum.convex.com (Russell E. Donnan)
  2142.  
  2143.    >Think C refuses to cast lvalues. I always thought this was conventional C.
  2144.    >MPW allows it.
  2145.  
  2146.    This is also wrong on the part of MPW.  There aren't any implicit casts in
  2147.    ANSI.  There is implicit promotion, but not casts.
  2148.  
  2149. But I mean that you can't *explicitly* cast an lvalue. You can't say
  2150.  
  2151.     (foo_t *)blah = &foo;
  2152.  
  2153. Instead, you have to say
  2154.  
  2155.     blah = (blah_t *)&foo;
  2156.  
  2157.    >Many, many cosmetic oversights: I don't believe the User's Manual was ever
  2158.    >proofread by a native speaker of English (graduates of engineering schools
  2159.    >don't count). There are many instances of words missing or transposed in
  2160.    >the running text.
  2161.  
  2162.    I've ordered ThinkC 5, but haven't gotten in yet.  I hope that the documentation
  2163.    isn't as poor as it sounds.
  2164.  
  2165. Actually, the documentation is pretty good and very extensive. The
  2166. User Manual is about the same size as before (548pp.) even though all
  2167. the info on object-oriented programming has been removed to a separate
  2168. Object-Oriented Programming Manual (528pp.). The Standard Libraries
  2169. Reference has grown about 50%, to 340 pages.
  2170.  
  2171. Still, in the couple hundred pages of the User Manual that I've
  2172. browsed, I've found enough errors to be slightly annoyed.
  2173.  
  2174. 
  2175. 
  2176. Path: ucivax!gateway
  2177. From: russ@magnum.convex.com ("Russell E. Donnan")
  2178. Subject: Re:  Various Think C 5.0 oddities
  2179. Message-ID: <9108262043.AA23459@magnum.convex.com>
  2180. Newsgroups: fa.think-c
  2181. Lines: 52
  2182. Date: 26 Aug 91 21:00:08 GMT
  2183.  
  2184. These have been reordered to organize my own thought.  Apologies to
  2185. Ephraim.
  2186.  
  2187. >Think C considers arrayName and &arrayName to have different types. MPW
  2188. >doesn't complain. I wouldn't care, myself, but John occasionally writes the
  2189. >latter.
  2190.  
  2191. These *ARE* two different things.  arrayName is a pointer to an
  2192. array.  &arrayName is a pointer to the first element of an array,
  2193. equivalent to &arrayName[0].  As an example of the difference, the
  2194. sizeof macro will return the whole size for the first, and the size of
  2195. the first element for the second.  The difference is inherent in the
  2196. language so that pointer arithmetic works properly.
  2197.  
  2198. >Think C refuses to cast lvalues. I always thought this was conventional C.
  2199. >MPW allows it.
  2200.  
  2201. This is also wrong on the part of MPW.  There aren't any implicit casts in
  2202. ANSI.  There is implicit promotion, but not casts.
  2203.  
  2204. The following are OK in ANSI.  They are just style questions.  I haven't
  2205. personally run into these because I happen to code in the style expected
  2206. by ThinkC, I guess.
  2207.  
  2208. >In a list of enumerated items, Think C complains of a syntax error if the
  2209. >last item has a trailing comma. MPW doesn't complain. I don't know if ANSI
  2210. >addresses this, but it's really a handy thing.
  2211. >
  2212. >Think C complains of a syntax error if the closing brace of a function is
  2213. >followed by a semicolon. MPW doesn't complain. Since certain kinds of
  2214. >statements (such as declarations) are allowed outside functions, why not
  2215. >allow a null statement?
  2216.  
  2217. >Cosmetic oversight: The compilation window should list files done and files
  2218. >to go, since very few people have a good idea how many lines they're
  2219. >compiling.
  2220.  
  2221. Yeah, I would like to see this changed also.
  2222.  
  2223. >Many, many cosmetic oversights: I don't believe the User's Manual was ever
  2224. >proofread by a native speaker of English (graduates of engineering schools
  2225. >don't count). There are many instances of words missing or transposed in
  2226. >the running text.
  2227.  
  2228. I've ordered ThinkC 5, but haven't gotten in yet.  I hope that the documentation
  2229. isn't as poor as it sounds.
  2230.  
  2231. -Russ
  2232. ---
  2233. Russ Donnan, (214) 497-4778, russ@convex.com
  2234. Convex Computer Corporation, 3000 Waterview Parkway, Richardson, TX, USA
  2235. Vs lbh pna ernq guvf, guvax nobhg vg.  Lbh'er n areq zna...
  2236. 
  2237. 
  2238. Path: ucivax!gateway
  2239. From: jonas@emil.csd.uu.se (Jonas Barklund)
  2240. Subject: Various Think C 5.0 oddities
  2241. Message-ID: <9108270721.AA20546@emil.CSD.UU.SE>
  2242. In-Reply-To: Ephraim Vishniac's message of 26 Aug 91 20:55:47 GMT <9108262055.AA16033@leander.think.com>
  2243. Newsgroups: fa.think-c
  2244. Lines: 7
  2245. Date: 27 Aug 91 07:21:52 GMT
  2246.  
  2247. Ephraim,
  2248.  
  2249. My Harbison & Steele (3rd ed) tells me that the result of a cast is never an
  2250. lvalue in ANSI C. Since you can, in all reasonable contexts, cast the rvalue
  2251. instead, this does not seem to be much of a restriction.
  2252.  
  2253. -- Jonas Barklund, Uppsala Univ.
  2254. 
  2255. 
  2256. Path: ucivax!gateway
  2257. From: nick@dcs.edinburgh.ac.uk (Nick Rothwell)
  2258. Subject: TC4.0.5 slowdown with RAM cache
  2259. Message-ID: <9108271122.aa06613@dcs.ed.ac.uk>
  2260. Newsgroups: fa.think-c
  2261. Lines: 16
  2262. Date: 27 Aug 91 10:36:39 GMT
  2263.  
  2264. [You may have seen this before: an MMDF mail problem meant that all my
  2265.  outgoing mail for the last three days was dropped on the floor.
  2266.  This is a recorded announcement.
  2267. ]
  2268.  
  2269. I notice that a large RAM cache really slows down TC4.0.5. After compiling
  2270. each file, it writes a huge amount of stuff to disk, a process which can
  2271. take many times longer than the compilation run. This delay seems related
  2272. to RAM cache size: the smaller the cache, the shorter the delay. Why is TC
  2273. taking this performance hit? With an 8Meg machine, I'd quite like to keep
  2274. the RAM cache quite big.
  2275.  
  2276. Configuration: SE/30, System 7.0.
  2277.  
  2278.         Nick.
  2279.  
  2280. 
  2281. 
  2282. Path: ucivax!gateway
  2283. From: nick@dcs.edinburgh.ac.uk (Nick Rothwell)
  2284. Subject: Re: Symantec Customer Service...
  2285. Message-ID: <9108271123.aa06622@dcs.ed.ac.uk>
  2286. Newsgroups: fa.think-c
  2287. Lines: 16
  2288. Date: 27 Aug 91 10:36:45 GMT
  2289.  
  2290. [You may have seen this before: an MMDF mail problem meant that all my
  2291.  outgoing mail for the last three days was dropped on the floor.
  2292.  This is a recorded announcement.
  2293. ]
  2294.  
  2295. >I also received notification of both upgrades
  2296. >by mail, within a few days after they were announced.
  2297.  
  2298. Anybody heard of upgrade notifications outside the US yet? I've heard
  2299. nothing.
  2300.  
  2301. Btw, Apple UK has just (as of this week) announced System 7.0.
  2302.  
  2303.  
  2304.         Nick.
  2305.  
  2306. 
  2307. 
  2308. Path: ucivax!gateway
  2309. From: nick@dcs.edinburgh.ac.uk (Nick Rothwell)
  2310. Subject: Re: THINK C and THINK Pascal Press Release
  2311. Message-ID: <9108271123.aa06670@dcs.ed.ac.uk>
  2312. Newsgroups: fa.think-c
  2313. Lines: 19
  2314. Date: 27 Aug 91 10:36:41 GMT
  2315.  
  2316. [You may have seen this before: an MMDF mail problem meant that all my
  2317.  outgoing mail for the last three days was dropped on the floor.
  2318.  This is a recorded announcement.
  2319. ]
  2320.  
  2321. >The THINK Class Library provides the building blocks for a
  2322. >standard Macintosh user interface such as windows, menus and
  2323. >controls.
  2324.  
  2325. The $64 question is: how compatible is the "new" Class Library with the
  2326. 4.0.x Class Library? Even though I haven't actually altered any of the TCL
  2327. sources (beyond the 4.0.5 upgrades) my code is tied to the "old" class
  2328. library, in particular the particularities of its behaviour (as we all
  2329. know, OO programming involves lots of side-effects and order-dependent
  2330. stuff). If, for example, windows are deactivated in a different order in
  2331. the new TCL when an application quits, I could be in trouble.
  2332.  
  2333.         Nick.
  2334.  
  2335. 
  2336. 
  2337. Path: ucivax!gateway
  2338. From: ephraim@think.com (Ephraim Vishniac)
  2339. Subject: Think C 5.0 oddities, summary of discussion
  2340. Message-ID: <9108271315.AA24846@godot.think.com>
  2341. Newsgroups: fa.think-c
  2342. Lines: 15
  2343. Date: 27 Aug 91 13:16:00 GMT
  2344.  
  2345.  
  2346. My thanks to everybody who helped illuminate the minor problems I
  2347. encountered while converting to Think C 5.0. For anyone who didn't
  2348. follow the discussion, here's an executive summary:
  2349.  
  2350. 1. Discrepancies between SpInside Mac and Think C are moot, because
  2351. Think C now uses the same header files as MPW. MPW's correctness in
  2352. the matter of header files is, of course, divinely ordained. Inside
  2353. Mac is now the Old Testament, and MPW the new one.
  2354.  
  2355. 2. In each case where Think C complained about constructions which MPW
  2356. accepted, Think C is ANSI-conformant and MPW is not. Perhaps Think C
  2357. is still more divine than MPW, but this depends on your view of the
  2358. ANSI committee.
  2359.  
  2360. 
  2361. 
  2362. Path: ucivax!gateway
  2363. From: duga@cvs.rochester.edu (Brady Duga)
  2364. Subject: arrayname and &arrayName
  2365. Message-ID: <9108271356.AA26838@merlin.cvs.rochester.edu>
  2366. Newsgroups: fa.think-c
  2367. Lines: 26
  2368. Date: 27 Aug 91 13:56:32 GMT
  2369.  
  2370. >
  2371. > >Think C considers arrayName and &arrayName to have different types. MPW
  2372. > >doesn't complain. I wouldn't care, myself, but John occasionally writes the
  2373. > >latter.
  2374. >
  2375. > These *ARE* two different things.  arrayName is a pointer to an
  2376. > array.  &arrayName is a pointer to the first element of an array,
  2377. > equivalent to &arrayName[0].  As an example of the difference, the
  2378. > sizeof macro will return the whole size for the first, and the size of
  2379. > the first element for the second.  The difference is inherent in the
  2380. > language so that pointer arithmetic works properly.
  2381. >
  2382.  
  2383. This may just have been a typo, but &arrayName is not equivalent to
  2384. &arrayName[0]. &arrayName[0] is a pointer to the first element of an
  2385. array and is equivalent to arrayName. According to K&R, 2nd ed. (p99):
  2386. "...pa=&a[0] can also be written as pa=a" (This is also in the 1st ed.,
  2387. p94). &arrayName should then be the pointer to the pointer to the
  2388. beginning of the array. However, I don't know if it's a legal statement.
  2389. In K&R 1st ed. they say "...an array name is a constant, not a variable:
  2390. constructions like a=pa or a++ or p=&a are illegal." The 2nd ed. says:
  2391. "...an array name is not a variable; constructions like a=pa and a++
  2392. are illegal." So what's the deal? is &arrayName legal in ANSI C?
  2393.  
  2394. --Brady (duga@cvs.rochester.edu)
  2395.  
  2396. 
  2397. 
  2398. Path: ucivax!gateway
  2399. From: ECO861771@ecostat.aau.dk ("Povl H. Pedersen")
  2400. Subject: Think C 5.0 oddities (I have been looking it up)
  2401. Message-ID: <23DBF78C769F013B5C@vms2.uni-c.dk>
  2402. Newsgroups: fa.think-c
  2403. X-Vms-To: IN::"think-c@ics.uci.edu"
  2404. Lines: 33
  2405. Date: 27 Aug 91 16:23:42 GMT
  2406. X-Envelope-To: think-c@ics.uci.edu
  2407.  
  2408.  
  2409. About the enum construct, I have been looking up in Stroustrup's book
  2410. (The C++ Programming Language, but the old version though) (He is a dane
  2411. like me too ;-) ).  I am not sure if this also counts for ANSI C, but
  2412. I am very sure that it is OK for K&R:
  2413.  
  2414. enum is defined this way:
  2415. enumlist, enumElement
  2416. THIS MEANS NO TRAILING COMMA ALLOWED. But this may be outdated information.
  2417.  
  2418. About casting lvalues I have been thinking a bit, look at the following
  2419. piece of C code. How would it work without casting lvalues ?
  2420.  
  2421. void *myPtr;
  2422. int a[10];
  2423. char b[20];
  2424.  
  2425. myPtr=a;
  2426. ((int *) myPtr)[3] = 7;       // myPtr[3] = 7  does not know how much to store
  2427. myPtr=b;
  2428. ((char *) myPtr)[11] = 'A';   // here we store a different quantity
  2429.  
  2430. So, WHENEVER YOU USE VOID * IT IS NECESARY TO CAST LVALUES,
  2431. But if void * some way is forbidden in Think C 5.0 (or ANSI), then it
  2432. is not necesary to let a casted lvalue become an lvalue. (But this is
  2433. even worse than the bug mentioned (not allowing casting)). You may ignore
  2434. the index [] above in the assignments if you prefer. You can also imagine
  2435. myPtr pointing to some structure.
  2436.  
  2437. So this seems to be a 1-1 draw in the fight THINK C 5.0 vs. THE STANDARD.
  2438. Somebody please check if casting a void * lvalue is legal.
  2439.  
  2440. Povl H. Pedersen      eco861771@ecostat.aau.dk
  2441. 
  2442. 
  2443. Path: ucivax!gateway
  2444. From: bootsie!olson@ics.uci.edu ("Eric K. Olson")
  2445. Subject: Compatibility with old class library
  2446. Message-ID: <9108271651.AA05744@bootsie.UUCP>
  2447. X-Mailer: Mail User's Shell (6.4 2/14/89)
  2448. Newsgroups: fa.think-c
  2449. Reply-To: olson@endor.harvard.edu
  2450. Lines: 34
  2451. Date: 27 Aug 91 21:52:06 GMT
  2452.  
  2453. In a message of Aug 27, 10:36am, Nick writes:
  2454. >
  2455. > The $64 question is: how compatible is the "new" Class Library with the
  2456. > 4.0.x Class Library? Even though I haven't actually altered any of the TCL
  2457. > sources (beyond the 4.0.5 upgrades) my code is tied to the "old" class
  2458. > library, in particular the particularities of its behaviour (as we all
  2459. > know, OO programming involves lots of side-effects and order-dependent
  2460. > stuff). If, for example, windows are deactivated in a different order in
  2461. > the new TCL when an application quits, I could be in trouble.
  2462.  
  2463. I will be posting a set of Weaver documents that update the Think Class
  2464. Library 1.0 to work with the new compiler (and with all type checking
  2465. turned on).  This same set of patches also adds some functionality
  2466. needed to use the Prepare() View Editor with the classes, and fixes a
  2467. few other real bugs in the old (1.0) Think Class Library.
  2468.  
  2469. This set of patches will let you continue with the old class library
  2470. if you wish.  The current issue of Prepare() (due out this week) works
  2471. with either compiler; the issue after that will require the new compiler
  2472. and class library.
  2473.  
  2474. I expect to post the patch within the week.  It is freely redistributable.
  2475.  
  2476. Cheers!
  2477.  
  2478. -Eric
  2479.  
  2480.  
  2481.  
  2482. --
  2483. Eric K. Olson, Editor, Prepare()      NOTE:     olson@bootsie.uucp doesn't work
  2484. Lexington Software Design             Internet: olson@endor.harvard.edu
  2485. 72A Lowell St., Lexington, MA  02173  Uucp:     harvard!endor!olson
  2486. (617) 863-9624                        Bitnet:   OLSON@HARVARD
  2487. 
  2488. 
  2489. Path: ucivax!gateway
  2490. From: schabtac@stout.atd.ucar.edu (Adam Schabtach)
  2491. Subject: Sys 7 Sound Mgr?
  2492. Message-ID: <9108280415.AA20890@stout.atd.ucar.EDU>
  2493. Newsgroups: fa.think-c
  2494. Lines: 14
  2495. Date: 28 Aug 91 04:37:55 GMT
  2496.  
  2497. Has anyone tried using the Sound Manager routines under System 7? I've
  2498. just spent an hour trying to get the simplest code to run, with little
  2499. success. I can allocate a channel, but only if I do the memory
  2500. allocation myself (IM VI says that SndNewChannel can do it for me, if
  2501. I want). After that, everything I try results in an error code of -205
  2502. ("Channel is corrupt or unusable"). Even if I just allocate the
  2503. channel and immediately call SndDisposeChannel, I get that error code.
  2504.  
  2505. Help! If I can't get this to work, I guess I'll have a stab at the old-
  2506. fashioned Sound Driver routines...
  2507.  
  2508. Thanks,
  2509. --Adam
  2510.  
  2511. 
  2512. 
  2513. Path: ucivax!gateway
  2514. From: hanche@imf.unit.no (Harald Hanche-Olsen)
  2515. Subject: Think C 5.0 oddities (I have been looking it up)
  2516. Message-ID: <16004.9108280905@hufsa.imf.unit.no>
  2517. In-Reply-To: "Povl H. Pedersen"'s message of 27 Aug 91 16:23:42 GMT <23DBF78C769F013B5C@vms2.uni-c.dk>
  2518. Newsgroups: fa.think-c
  2519. Lines: 36
  2520. Date: 28 Aug 91 09:06:08 GMT
  2521.  
  2522. Povl H. Pedersen <ECO861771@ecostat.aau.dk> writes:
  2523.  
  2524.    I am not sure if this also counts for ANSI C, but
  2525.    I am very sure that it is OK for K&R:
  2526.  
  2527.    enum is defined this way:
  2528.    enumlist, enumElement
  2529.    THIS MEANS NO TRAILING COMMA ALLOWED. But this may be outdated information.
  2530.  
  2531. Accepting trailing commas is new in ANSI C.
  2532.  
  2533.    About casting lvalues I have been thinking a bit, look at the following
  2534.    piece of C code. How would it work without casting lvalues ?
  2535.  
  2536.    void *myPtr;
  2537.    int a[10];
  2538.    char b[20];
  2539.  
  2540.    myPtr=a;
  2541.    ((int *) myPtr)[3] = 7;       // myPtr[3] = 7  does not know how much to store
  2542.    myPtr=b;
  2543.    ((char *) myPtr)[11] = 'A';   // here we store a different quantity
  2544.  
  2545.    So, WHENEVER YOU USE VOID * IT IS NECESARY TO CAST LVALUES,
  2546.  
  2547. Ah, but you are not casting an lvalue here, you are merely using a
  2548. cast to define the lvalue, which is another thing altogether.
  2549. ((int*)myPtr)[3] is equivalent to *((int*)myPtr+3), and the (int*)
  2550. here both serves to make sure the pointer arithmetic comes out right
  2551. and to make ((int*)myPtr+3) come out as (int*), so the compiler can
  2552. know how much to store.  No sweat.
  2553. --
  2554. Harald Hanche-Olsen <hanche@imf.unit.no>               I eat my peas with honey
  2555. Division of mathematical sciences                      I've done it all my life
  2556. The Norwegian Institute of Technology             It makes the peas taste funny
  2557. N-7034 Trondheim NORWAY                          But it keeps them on the knife
  2558. 
  2559. 
  2560. Path: ucivax!gateway
  2561. From: nick@dcs.edinburgh.ac.uk (Nick Rothwell)
  2562. Subject: Re: Compatibility with old class library
  2563. Message-ID: <9108281050.aa24123@dcs.ed.ac.uk>
  2564. Newsgroups: fa.think-c
  2565. Lines: 22
  2566. Date: 28 Aug 91 10:14:09 GMT
  2567.  
  2568. >I will be posting a set of Weaver documents that update the Think Class
  2569. >Library 1.0 to work with the new compiler (and with all type checking
  2570. >turned on).
  2571.  
  2572. I'm not sure I want to adopt this as a solution. If Symantec are
  2573. maintaining the TCL through revisions of the compiler (and more
  2574. importantly, the System Software) I'd rather move with that. So, it's the
  2575. backward compatibility that concerns me. I have several tens of thousands
  2576. of lines of code which I've based on the old TCL (all done by inheritance
  2577. from the original TCL classes, rather than alterations to TCL sources).
  2578. Will this port immediately to the new TCL? Even if it requires a little
  2579. work (different class names and so on) then that's not too bad (although
  2580. it's going to discourage developers from relying on it if each new revision
  2581. means altering their sources). The real nightmare scenario is that the
  2582. internal workings of the TCL have altered so that my application compiles
  2583. but the different execution dependencies of the TCL now mean it bombs out
  2584. due to dangling pointers and so on.
  2585.  
  2586. OOP is a real pig's ear, isn't it folks? :-)
  2587.  
  2588.         Nick.
  2589.  
  2590. 
  2591. 
  2592. Path: ucivax!gateway
  2593. From: Chris_McNeil@macsmtp.csd.unb.ca (Chris McNeil)
  2594. Subject: Notification Manager bus error
  2595. Message-ID: <9108280544.aa03830@ics.uci.edu>
  2596. X-Mailer: QuickMail/SMTP interface.
  2597. Newsgroups: fa.think-c
  2598. Lines: 48
  2599. Date: 28 Aug 91 12:44:36 GMT
  2600.  
  2601. I want to put up a notifyication when an error occurs in a background
  2602. application I'm writing. I then want to wait until the uses responds to the
  2603. notification and exit the program. This is my first try at writing a response
  2604. procedure. The following code gives me a bus error, anyone out there willing to
  2605. tell me what STUPID thing I'm doing wrong ?
  2606.  
  2607. Chris McNeil
  2608. cjm@unb.ca
  2609.  
  2610.  
  2611.  
  2612. #define nil 0L
  2613. #include <OSUtil.h>
  2614. int test=1;
  2615. main()
  2616. {
  2617. long errCode=0;
  2618. EventRecord myEvent;
  2619. char* junk="\phello chris";
  2620. QElemPtr trythis;
  2621. int err;
  2622. struct NMRec    myNote;
  2623. pascal void MyResponse ();
  2624.  
  2625.     myNote.qType = nmType;    /* queue type -- nmType = 8 */
  2626.     myNote.nmMark = nil;        /*no mark in Apple menu */
  2627.     myNote.nmSIcon =nil ;        /* flashing Icon */
  2628.     myNote.nmSound = nil;    /* no sound to be played */
  2629.     myNote.nmStr =(StringPtr)"\phello";        /* alert box */
  2630.     myNote.nmResp =(ProcPtr)MyResponse;        /* response procedure */
  2631.     myNote.nmRefCon =  SetCurrentA5();    /* set to my A5*/
  2632. err = NMInstall ((QElemPtr) &myNote);
  2633. for (;;){
  2634. GetNextEvent(everyEvent, &myEvent);
  2635. if (test == 132){
  2636. err=NMRemove ((QElemPtr) &myNote);
  2637. break;
  2638. }
  2639. }
  2640. }
  2641. pascal void MyResponse (QElemPtr nmReqPtr)
  2642. {
  2643. unsigned long oldA5;
  2644.  oldA5 = SetA5((*(NMRec *)nmReqPtr).nmRefCon);
  2645.     test = 132;
  2646.   SetA5(oldA5);
  2647.  
  2648. }
  2649. 
  2650. 
  2651. Path: ucivax!gateway
  2652. From: udsugar@king.mcs.drexel.edu (David Sugar)
  2653. Subject: System 7 Sound's
  2654. Message-ID: <9108281446.AA19464@mcs.drexel.edu>
  2655. Newsgroups: fa.think-c
  2656. Lines: 25
  2657. Date: 28 Aug 91 14:49:14 GMT
  2658.  
  2659.  
  2660.   I would have mailed this right back to whom ever sent it, but I lost the
  2661. address when I lost my connection suddenly.  Anyway..
  2662.   With SndNewChannel you have to first assign mySndChan to be NULL before
  2663. you make the SndNewChannel call.  Well, that's the easiest way to do it,
  2664. then SndNewChannel will allocate enough space for the sound.  Or, you can
  2665. assign mySndChan a length to be allocated.  I guess it depends on what
  2666. you are trying to do.
  2667.   I did something like this, with no problem..
  2668.  
  2669. Sound()
  2670. {
  2671.     SndChannelPtr    soundChannel;
  2672.  
  2673.     soundChannel=0L;
  2674.     SndNewChannel(&soundChannel,sampledSynth,initMono,0L);
  2675. }
  2676.  
  2677. And the you can call the SndPlay to play the sound..
  2678.  
  2679. Hope this helps.
  2680.  
  2681. David Sugar
  2682. udsugar@mcs.drexel.edu
  2683.  
  2684. 
  2685. 
  2686. Path: ucivax!gateway
  2687. From: bootsie!olson@ics.uci.edu ("Eric K. Olson")
  2688. Subject: Old TCL, new Compiler
  2689. Message-ID: <9108281746.AA11908@bootsie.UUCP>
  2690. X-Mailer: Mail User's Shell (6.4 2/14/89)
  2691. Newsgroups: fa.think-c
  2692. Reply-To: olson@endor.harvard.edu
  2693. Lines: 26
  2694. Date: 28 Aug 91 17:44:03 GMT
  2695.  
  2696. In your message of Aug 28, 10:14am, you write:
  2697. >
  2698. > >I will be posting a set of Weaver documents that update the Think Class
  2699. > >Library 1.0 to work with the new compiler (and with all type checking
  2700. > >turned on).
  2701. >
  2702. > I'm not sure I want to adopt this as a solution.
  2703.  
  2704. I only suggest this as a short-term, interim solution.  Originally I did
  2705. it because I thought the issue of Prepare() would be released before
  2706. THINK C 5 (and I wanted to make sure my code would work with the new
  2707. compiler when released).  It may be useful for some people as an interim
  2708. solution.
  2709.  
  2710. I don't plan on using it for more than a few more days myself!
  2711.  
  2712. Cheers!
  2713.  
  2714. -Eric
  2715.  
  2716.  
  2717. --
  2718. Eric K. Olson, Editor, Prepare()      NOTE:     olson@bootsie.uucp doesn't work
  2719. Lexington Software Design             Internet: olson@endor.harvard.edu
  2720. 72A Lowell St., Lexington, MA  02173  Uucp:     harvard!endor!olson
  2721. (617) 863-9624                        Bitnet:   OLSON@HARVARD
  2722. 
  2723. 
  2724. Path: ucivax!gateway
  2725. From: rz@camcon.co.uk (Rob Zanconato)
  2726. Subject: Please remove me from this list
  2727. Message-ID: <5845.9108281336@hermes.camcon.co.uk>
  2728. Newsgroups: fa.think-c
  2729. Lines: 3
  2730. Date: 28 Aug 91 18:59:39 GMT
  2731.  
  2732.  
  2733. Pleas remove me from the think-c list, thanks.
  2734. Roberto Zanconato: rz@camcon.co.uk
  2735. 
  2736. 
  2737. Path: ucivax!gateway
  2738. From: rodrigo@cmsun.cmf.nrl.navy.mil
  2739. Subject: Prepare()
  2740. Message-ID: <9108281936.AA29143@cmsun.cmf.nrl.navy.mil>
  2741. Newsgroups: fa.think-c
  2742. Lines: 11
  2743. Date: 28 Aug 91 19:39:39 GMT
  2744.  
  2745.  
  2746. I have heard a bit about Prepare(). I would like
  2747. to have some more information about it and
  2748. how to get it and how much it costs.
  2749.  
  2750. Im using Think C 4.0.5 and my upgrade to 5.0 is on the mail.
  2751.  
  2752.  
  2753. Thanks a lot.
  2754.  
  2755.  
  2756. 
  2757. 
  2758. Path: ucivax!gateway
  2759. From: nick@dcs.edinburgh.ac.uk (Nick Rothwell)
  2760. Subject: TC5.0 release in the UK
  2761. Message-ID: <9108291611.aa21530@dcs.ed.ac.uk>
  2762. Newsgroups: fa.think-c
  2763. Lines: 10
  2764. Date: 29 Aug 91 18:01:17 GMT
  2765.  
  2766. In case anybody's interested, I've just been on the line to Symantec UK.
  2767. They don't have any clear details about the TC5.0 release yet, but reckon
  2768. it'll be 4-6 weeks before they get it. They don't know the upgrade price
  2769. either.
  2770.  
  2771. Seems about in step with Apple UK who've had System 7.0 kits available for,
  2772. ooh, an entire week now...
  2773.  
  2774.         Nick.
  2775.  
  2776. 
  2777. 
  2778. Path: ucivax!gateway
  2779. From: Michael.Nowak@um.cc.umich.edu
  2780. Subject: Prepare()
  2781. Message-ID: <9328250@um.cc.umich.edu>
  2782. Newsgroups: fa.think-c
  2783. Lines: 6
  2784. Date: 29 Aug 91 18:03:23 GMT
  2785.  
  2786. Speakig of magazines like Prepare(), has anyone seen a copy of Splash
  2787. lately?  After we subscribed, I got one issue and that's it, and that was
  2788. osmetime ago.
  2789.  
  2790. Mike Nowak.
  2791. U-M ITD Office of Instructional Technology
  2792. 
  2793. 
  2794. Path: ucivax!gateway
  2795. From: rhz@cwns4.ins.cwru.edu (Hobbes)
  2796. Subject: Splash
  2797. Message-ID: <9108292104.AA19683@cwns4.INS.CWRU.Edu>
  2798. Newsgroups: fa.think-c
  2799. Lines: 6
  2800. Date: 29 Aug 91 21:04:42 GMT
  2801.  
  2802. The reply I got ~1 week ago from splash@applelink was that they are (seriously)
  2803. behind, but the new issue should be out by the end of this month (August).
  2804. There have only been two issues put out so far.  What this means is that a
  2805. four-issue subscription will last a while longer than 1 year.
  2806.  
  2807. Hobbes, rhz@po.cwru.edu
  2808. 
  2809. 
  2810. Path: ucivax!gateway
  2811. From: pmiller@topaz.bmr.gov.au (Peter Miller)
  2812. Subject: Re: Various Think C 5.0 oddities
  2813. X-Face: u\%{\QY_5[S37dfQ#c*#""=K,KGq>4wGryNm+=TT]1jOGap~>j*-sb9d|ll.sHIJu&n{:T`
  2814.  cP|e(B?o,W%l_)o5pW,"MVie?sw{hZ@7E^o`C:wz){1p!u%O<N#lcPP]b|f:2,-mNKt{Ue(_7e"ok@
  2815.  b".~TQ#YGrlY[r!:5q[/"O&Bn4:3mwuUFt>Qc]KTq}A")Jk,[
  2816. Message-ID: <9108262259.AA10253@topaz.bmr.gov.au>
  2817. In-Reply-To: Your message of 26 Aug 91 18:53:25 +0000.
  2818.              <9108261853.AA15442@leander.think.com>
  2819. Newsgroups: fa.think-c
  2820. Lines: 32
  2821. Date: 29 Aug 91 22:57:17 GMT
  2822.  
  2823.  
  2824. Ephraim Vishniac <ephraim@think.com> writes:
  2825. > In a list of enumerated items, Think C complains of a syntax error if the
  2826. > last item has a trailing comma. MPW doesn't complain. I don't know if ANSI
  2827. > addresses this, but it's really a handy thing.
  2828. The ansi standard explicitly disallows it.
  2829. Personally, I think the standard got this wrong (prior art, one of the standard
  2830. committee's yardsticks, would indicate it should be allowed).
  2831.  
  2832. > Think C complains of a syntax error if the closing brace of a function is
  2833. > followed by a semicolon. MPW doesn't complain. Since certain kinds of
  2834. > statements (such as declarations) are allowed outside functions, why not
  2835. > allow a null statement?
  2836. That semicolon is actually a completely empty variable declaration,
  2837. and is explicitly disallowed by the ansi standard.
  2838.  
  2839. > Think C refuses to cast lvalues. I always thought this was conventional C.
  2840. > MPW allows it.
  2841. It aint convetional C, some compilers have a bug.
  2842. For you guys who have no idea what this is, consider
  2843.     short    foo;
  2844.     (long)foo = 123456789;
  2845. is not ansi conforming (and is rarely understood, anyway), while
  2846.     *(long *)&foo = 123456789;
  2847. is the "portable" and ansi conforming way to do it.
  2848. The ansi standard says the result of a cast is ALWAYS an rvalue.
  2849.  
  2850. Regards
  2851. Peter Miller    UUCP    uunet!munnari!bmr.gov.au!pmiller
  2852. /\/\*        CSNET    pmiller@bmr.gov.au
  2853. Disclaimer:  The views expressed here are personal and do not necessarily
  2854.     reflect the view of my employer or the views or my colleagues.
  2855. 
  2856. 
  2857. Path: ucivax!gateway
  2858. From: swenson%john.Berkeley.EDU@ucbvax.berkeley.edu (Kirk Swenson)
  2859. Subject: Re:  Splash
  2860. Message-ID: <9108292309.AA13798@john.berkeley.edu>
  2861. Newsgroups: fa.think-c
  2862. Lines: 9
  2863. Date: 29 Aug 91 23:09:10 GMT
  2864.  
  2865. I've never seen a copy of Splash.  Is it useful?  What sorts of
  2866. information does it contain?  I'm always interested in sources of
  2867. useful programming information, but I don't know much about this
  2868. one.  Anyone out there want to share their experience with it?
  2869.  
  2870. Kirk Swenson
  2871. Berkeley, CA
  2872. swenson@john.berkeley.edu
  2873.  
  2874. 
  2875. 
  2876. Path: ucivax!gateway
  2877. From: schabtac@stout.atd.ucar.edu (Adam Schabtach)
  2878. Subject: Sound Manager revisited
  2879. Message-ID: <9108300115.AA15386@stout.atd.ucar.EDU>
  2880. Newsgroups: fa.think-c
  2881. Lines: 12
  2882. Date: 30 Aug 91 01:15:56 GMT
  2883.  
  2884. Thanks to everyone who offered sound advice (heh) on my troubles with
  2885. the Sound Manager. I'm not quite sure what I was doing wrong, but
  2886. after reading the various responses to my plea, I had another go at it
  2887. and got it to work.
  2888.  
  2889. And I promise I won't use the Sound Driver (even though it did work on
  2890. my first attempt to use it, on a IIci running System 7, which is more
  2891. than I can say for the Sound Manager). :-)
  2892.  
  2893. Thanks again,
  2894. --Adam
  2895.  
  2896. 
  2897. 
  2898. Path: ucivax!gateway
  2899. From: jdm@boulder.colorado.edu ("James D. Meiss")
  2900. Subject: Re: Various Think C 5.0 oddities
  2901. Message-ID: <9108300426.AA04546@poincare.colorado.edu>
  2902. Newsgroups: fa.think-c
  2903. Lines: 25
  2904. Date: 30 Aug 91 04:24:22 GMT
  2905.  
  2906.  
  2907. Peter Miller <pmiller@topaz.bmr.gov.au> writes (on casting lvalues):
  2908.  
  2909. >For you guys who have no idea what this is, consider
  2910. >    short    foo;
  2911. >    (long)foo = 123456789;
  2912. >is not ansi conforming (and is rarely understood, anyway), while
  2913. >    *(long *)&foo = 123456789;
  2914. >is the "portable" and ansi conforming way to do it.
  2915.  
  2916.  
  2917.         I'm sorry to be so obtuse, but could someone please explain this?
  2918. You are overwriting memory when you do this aren't you? Why in the world
  2919. would you want to do such a thing?
  2920.  
  2921.  
  2922.     James D. Meiss
  2923.     Applied Mathematics                   (303)492-4668 secretary
  2924.     University of Colorado
  2925.  
  2926.     jdm@boulder.colorado.edu
  2927.  
  2928.             [working at home  VOICE OR FAX # (303)440-6453].
  2929.  
  2930.  
  2931. 
  2932. 
  2933. Path: ucivax!gateway
  2934. From: CZYCHI%CSGHSG5A@pucc.princeton.edu ("Gary T. Czychi")
  2935. Subject: TCL: Changing TextEdit fields on 'TAB'?
  2936. Message-ID: <21A0E8554A9FC03635@csghsg5a.bitnet>
  2937. Newsgroups: fa.think-c
  2938. X-VMS-To: THINK-C
  2939. Lines: 31
  2940. Date: 30 Aug 91 12:35:04 GMT
  2941. X-Envelope-to: think-c@ics.uci.EDU
  2942.  
  2943.  
  2944.  
  2945. Hi,
  2946.  
  2947. in my AppMaker generated code for my main window (CMainWindow) which
  2948. is a Subclass of CWindow, I have defined several TextEdit fields.
  2949.  
  2950. Now, I want to jump from field to field when the user types a 'TAB' or
  2951. a 'CR'.
  2952.  
  2953. To do this, I have created a new method in my main window class,
  2954. CMainWindow.DoKeyDown, which overrides the original DoKeyDown method
  2955. (found in CBureaucrat, the ancestor of CWindow).
  2956.  
  2957. However, this doesn't work. Neither my method is called nor DoKeyDown
  2958. in CBureaucrat.
  2959.  
  2960. What do I do wrong? I have no idea. Can you please help me?
  2961.  
  2962.  
  2963. Thanks a lot.
  2964.  
  2965.   Gary
  2966.  
  2967.     Gary T. Czychi          University of St.Gallen
  2968.  
  2969.        czychi@alpha.unisg.ch (preferred host)
  2970.          czychi at csghsg52   (=bitnet)
  2971.            czychi@bernina.ethz.ch
  2972.              Switzerland
  2973.               -
  2974. 
  2975. 
  2976. Path: ucivax!gateway
  2977. From: KTC0440CSCI%APSU.BITNET@cunyvm.cuny.edu (Kerry 'UPE' Cianos)
  2978. Subject: Editable test field
  2979. Message-ID: <33ECB721206010B6@APSU.BITNET>
  2980. Newsgroups: fa.think-c
  2981. X-VMS-To: IN%"think-c@ics.uci.edu"
  2982. Lines: 20
  2983. Date: 30 Aug 91 14:24:31 GMT
  2984. X-Envelope-to: think-c@ics.uci.edu
  2985.  
  2986.   Hi all,
  2987.  
  2988.     I've just started delving into Mac programming.  I have v5.0 of Think C
  2989. (upgraded from v4.05) and have been doing fairly well so far.  Here's
  2990. my question: I want to display a dialog with a TextEdit field (I think?)
  2991. and allow the user to enter say a number (like 135).  When the user presses
  2992. Return I want to get that number.  Is there an easy way to do this?  I made
  2993. a DLOG and a TextEdit DITL, called IsDialogEvent() and then whole 9 yards
  2994. but when I hit return it justs adds a CR to the text.  What I need is a way
  2995. to act on that Return.  I was hoping I wouldn't have to write a key parser
  2996. but I have this feeling... any comments (and especially source code!) would
  2997. be appreciated.  Thanks,
  2998.  
  2999.         - Kerry
  3000.  
  3001.   ------------------------------------------------------------------------
  3002.   Kerry Cianos, President                PS/2 = PS divided by 2 =
  3003.   Impress Technologies                   half a computer, thats ok, OS/2
  3004.   Email : ktc0440c@apsu.bitnet           is only half an operating system!
  3005.  
  3006. 
  3007. 
  3008. Path: ucivax!gateway
  3009. From: BEASON%GENESEO.BITNET@cunyvm.cuny.edu (Bob Beason)
  3010. Subject: Editable text field
  3011. Message-ID: <540388E76000109A@geneseo.bitnet>
  3012. Newsgroups: fa.think-c
  3013. X-VMS-To: IN%"think-c@ics.uci.edu"
  3014. Lines: 7
  3015. Date: 30 Aug 91 17:14:57 GMT
  3016. X-Envelope-to: think-c@ics.uci.edu
  3017.  
  3018. Hi Kerry,
  3019. Depending on what your dialog looks like, may dialog item #1 the OK button,
  3020. which is the default when you hit the CR. The text field can be a higher
  3021. item #.  That is what I have used in the past and it has worked fine.
  3022.  
  3023. Bob Beason
  3024. beason@geneseo.bitnet
  3025. 
  3026. 
  3027. Path: ucivax!gateway
  3028. From: rudman@mondo.engin.umich.edu (Daniel Edward Rudman)
  3029. Subject: Re: Editable test field
  3030. Message-ID: <9108310901.AA17163@mondo.engin.umich.edu>
  3031. Newsgroups: fa.think-c
  3032. Lines: 18
  3033. Date: 31 Aug 91 08:02:18 GMT
  3034.  
  3035.  
  3036. You're messing up TextEdit, for one thing. Actually, all you need is a DLOG
  3037. with an Edit Text item (say, item #2) and an OK button (say, item #1). Then,
  3038. you do the standard ModalDialog but with a ProcPtr to some procedure, say
  3039. MyProcPtr (). Read IM Volume I for information on how to do this. If you
  3040. can, THINK Reference is even better.
  3041.  
  3042. In any case, the ProcPtr should check to see if return was hit and send
  3043. back an item number of 1 (the OK button) regardless of the context. At
  3044. least, that
  3045. is what you are asking for.
  3046.  
  3047. Hope this helps!
  3048.  
  3049. //Dan
  3050.  
  3051. P.S. TextEdit is a separate thing...
  3052.  
  3053. 
  3054. 
  3055. Path: ucivax!gateway
  3056. From: phils@chaos.cs.brandeis.edu (Phil Shapiro)
  3057. Subject: TCL: Changing TextEdit fields on 'TAB'?
  3058. Message-ID: <9108311921.AA11154@chaos.cs.brandeis.edu>
  3059. In-Reply-To: "Gary T. Czychi"'s message of 30 Aug 91 12:35:04 GMT <21A0E8554A9FC03635@csghsg5a.bitnet>
  3060. Newsgroups: fa.think-c
  3061. Lines: 33
  3062. Date: 31 Aug 91 19:21:47 GMT
  3063.  
  3064.    From: "Gary T. Czychi" <CZYCHI%CSGHSG5A@pucc.princeton.edu>
  3065.    In my AppMaker generated code for my main window (CMainWindow)
  3066.    which is a Subclass of CWindow, I have defined several TextEdit
  3067.    fields.
  3068.  
  3069.    Now, I want to jump from field to field when the user types a 'TAB'
  3070.    or a 'CR'.
  3071.  
  3072.    To do this, I have created a new method in my main window class,
  3073.    CMainWindow.DoKeyDown, which overrides the original DoKeyDown
  3074.    method (found in CBureaucrat, the ancestor of CWindow).
  3075.  
  3076.    However, this doesn't work. Neither my method is called nor
  3077.    DoKeyDown in CBureaucrat.
  3078.  
  3079. If you have an active CEditText pane (ie, it's got a blinking cursor,
  3080. all typing goes there), the it's the current gGopher.  Therefore, it
  3081. will receive all typed keys, and will process them (unless they're
  3082. command-key sequences).  If you want to modify the behavior of the tab
  3083. key, you'll have to subclass the CEditText class to special-case the
  3084. tab key.
  3085.  
  3086. With the TCL 1.1 (included with Pascal 4.0 and C 5.0), there's a class
  3087. called CDialogText which catches tab keys and hands them off its
  3088. supervisor, which is presumably a CDialog.  This allows the CDialog to
  3089. decide which pane should be the next gopher, and to transfer control
  3090. properly.
  3091.  
  3092.     -phil
  3093. ----
  3094.    Phil Shapiro                           Technical Support Analyst
  3095.    Language Products Group                     Symantec Corporation
  3096.         Internet: phils@chaos.cs.brandeis.edu
  3097. 
  3098. 
  3099. Path: ucivax!gateway
  3100. From: KTC0440CSCI%APSU.BITNET@cunyvm.cuny.edu (Kerry 'UPE' Cianos)
  3101. Subject: EditText Item for Modeless
  3102. Message-ID: <2D593142A060179F@APSU.BITNET>
  3103. Newsgroups: fa.think-c
  3104. X-VMS-To: IN%"think-c@ics.uci.edu"
  3105. Lines: 35
  3106. Date: 31 Aug 91 20:09:39 GMT
  3107. X-Envelope-to: think-c@ics.uci.edu
  3108.  
  3109. |>You're messing up TextEdit, for one thing. Actually, all you need is a DLOG
  3110. |>with an Edit Text item (say, item #2) and an OK button (say, item #1). Then,
  3111. |>you do the standard ModalDialog but with a ProcPtr to some procedure, say
  3112. |>MyProcPtr (). Read IM Volume I for information on how to do this. If you
  3113. |>can, THINK Reference is even better.
  3114. |>
  3115. |>In any case, the ProcPtr should check to see if return was hit and send
  3116. |>back an item number of 1 (the OK button) regardless of the context. At
  3117. |>least, that
  3118. |>is what you are asking for.
  3119. |>
  3120. |>Hope this helps!
  3121. |>
  3122. |>//Dan
  3123. |>
  3124. |>P.S. TextEdit is a separate thing...
  3125. |>
  3126.  
  3127.    Ok, but how would I do this from a modeless dialog.  You see, I want to
  3128. place a modeless dialog on the middle of the screen, and be able to pick
  3129. menus etc.  I also want the dialog to be able to accept a number and my
  3130. program process this.  Sorta like a rolodex.  You should be able to type in
  3131. the number and hit return, then other fields in the dialog would be updated
  3132. accordingly.  I've made a modeless dialog, with a TextEdit item.  But
  3133. again, when I hit return it actually does a CR.  I'll look into IM I and
  3134. see what I can deduce.  Another question?  Is it better too this in a
  3135. window and make controls for the stuff I need??  Or should I stick with the
  3136. Dialog??  Can anyone make heads or tails of this??  Thanks...
  3137.  
  3138.       Kerry
  3139.  
  3140.   ------------------------------------------------------------------------
  3141.   Kerry Cianos, President                PS/2 = PS divided by 2 =
  3142.   Impress Technologies                   half a computer, thats ok, OS/2
  3143.   Email : ktc0440c@apsu.bitnet           is only half an operating system!
  3144. 
  3145.